UNPKG

@mikezimm/npmfunctions

Version:
111 lines 4.89 kB
"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