@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
111 lines • 4.89 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeTheTimeObject = void 0;
var constants_1 = require("./constants");
var dayLabels_1 = require("./dayLabels");
var monthLabels_1 = require("./monthLabels");
var weeks_1 = require("./weeks");
var deltas_1 = require("./deltas");
//This is a more detailed version of the time object for charting purposes
function makeTheTimeObject(timeString, coreStart, coreEnd, useHolidays) {
if (coreStart === void 0) { coreStart = 8; }
if (coreEnd === void 0) { coreEnd = 18; }
if (useHolidays === void 0) { useHolidays = constants_1.holidays; }
//console.log('makeTimeObject: ', timeString);
var rightNow = new Date();
var todayYear = rightNow.getFullYear();
var todayMonth = rightNow.getMonth(); //Zero Index
var todayWeek = (0, weeks_1.ISO8601_week_no)(rightNow);
var todayDate = rightNow.getDate();
var todayDay = rightNow.getDay();
var todaysDate = new Date(todayYear, todayMonth, todayDate);
var todayTime = rightNow.getTime();
var todayHour = rightNow.getHours();
var giveTime = new Date();
if (timeString != null && timeString.length > 0) {
giveTime = new Date(timeString);
}
else {
timeString = giveTime.toLocaleString();
}
var givenYear = giveTime.getFullYear();
var givenMonth = giveTime.getMonth(); //Zero Index
var givenWeek = (0, weeks_1.ISO8601_week_no)(giveTime);
var givenDate = giveTime.getDate();
var givenDay = giveTime.getDay();
var priorNewYears = new Date(givenYear, 0, 1);
var givenTime = giveTime.getTime();
var givenHour = giveTime.getHours();
var givenMinutes = giveTime.getMinutes();
var isThisYear = todayYear === givenYear ? true : false;
var isThisMonth = isThisYear && todayMonth === givenMonth ? true : false;
var isThisWeek = isThisYear && givenWeek === todayWeek ? true : false;
var isToday = isThisMonth && todayDate === givenDate ? true : false;
var givenDateMidnight = new Date(givenYear, givenMonth, givenDate);
var firstOfMonth = new Date(givenYear, givenMonth, 1);
var priorSunday = (0, weeks_1.getDayOfWeek)(timeString, 'sun');
var priorMonday = (0, weeks_1.getDayOfWeek)(timeString, 'mon');
var coreTime = 'Normal';
var hoursEarly = 0;
var hoursLate = 0;
var isHoliday = false;
for (var _i = 0, useHolidays_1 = useHolidays; _i < useHolidays_1.length; _i++) {
var d = useHolidays_1[_i];
if (d[0] - 1 === givenMonth && d[1] == givenDate) {
isHoliday = true;
}
}
if (isHoliday) {
coreTime = 'Holiday';
}
else if (givenDay === 0 || givenDay === 6) {
coreTime = 'Weekend';
}
else if (givenHour < coreStart) {
hoursEarly = coreStart - givenHour;
hoursEarly += (1 - givenMinutes / 60);
coreTime = 'Early';
}
else if (givenHour >= coreEnd) {
hoursLate = givenHour - coreEnd;
hoursLate += givenMinutes / 60;
coreTime = 'Late';
}
var daysAgo = Math.round(Math.abs((rightNow.getTime() - giveTime.getTime()) / constants_1.msPerDay));
var theTime = {
now: giveTime,
theTime: giveTime.toUTCString(),
milliseconds: giveTime.getTime(),
year: givenYear,
month: givenMonth,
week: givenWeek,
date: givenDate,
day: givenDay,
hour: givenHour,
minute: givenMinutes,
isThisYear: isThisYear,
isThisMonth: isThisMonth,
isThisWeek: isThisWeek,
isToday: isToday,
isYesterday: daysAgo === 1 ? true : false,
daysAgo: (0, deltas_1.getTimeDelta)(givenDateMidnight, todaysDate, 'days'),
firstOfMonth: firstOfMonth,
priorSunday: priorSunday,
priorMonday: priorMonday,
daysSinceSun: (0, deltas_1.getTimeDelta)(priorSunday, todaysDate, 'days'),
daysSinceMon: (0, deltas_1.getTimeDelta)(priorMonday, todaysDate, 'days'),
daysSinceNewYear: (0, deltas_1.getTimeDelta)(priorNewYears, todaysDate, 'days'),
daysSinceMonthStart: (0, deltas_1.getTimeDelta)(firstOfMonth, todaysDate, 'days'),
dayMMMDD: monthLabels_1.monthStr3['en-us'][givenMonth] + '-' + givenDate,
dayDDDMMMDD: [dayLabels_1.weekday3['en-us'][givenDay], monthLabels_1.monthStr3['en-us'][givenMonth], givenDate].join(' '),
dayYYYYMMDD: [givenYear, ("0" + (givenMonth + 1)).slice(-2), givenDate].join('-'),
dayOfWeekDDD: dayLabels_1.weekday3['en-us'][givenDay],
coreTime: coreTime,
hoursEarly: hoursEarly,
hoursLate: hoursLate,
};
//console.log('theTime:', theTime);
return theTime;
}
exports.makeTheTimeObject = makeTheTimeObject;
//# sourceMappingURL=timeObject.js.map