UNPKG

@mikezimm/npmfunctions

Version:
161 lines 6.85 kB
"use strict"; /*** * .d888b. .d88b. .d888b. .d88b. db .d888b. db j88D * VP `8D .8P 88. VP `8D .8P 88. o88 VP `8D o88 j8~88 * odD' 88 d'88 odD' 88 d'88 88 odD' 88 j8' 88 * .88' 88 d' 88 .88' 88 d' 88 C8888D 88 .88' C8888D 88 V88888D * j88. `88 d8' j88. `88 d8' 88 j88. 88 88 * 888888D `Y88P' 888888D `Y88P' VP 888888D VP VP * * * d8888b. d888888b db db .d88b. d888888b d888888b d888888b db d88888b .d8888. * 88 `8D `88' 88 88 .8P Y8. `~~88~~' `~~88~~' `88' 88 88' 88' YP * 88oodD' 88 Y8 8P 88 88 88 88 88 88 88ooooo `8bo. * 88~~~ 88 `8b d8' 88 88 88 88 88 88 88~~~~~ `Y8b. * 88 .88. `8bd8' `8b d8' 88 88 .88. 88booo. 88. db 8D * 88 Y888888P YP `Y88P' YP YP Y888888P Y88888P Y88888P `8888Y' * * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createDeltaDateArrays = exports.getAge = exports.getBestTimeDelta = exports.getTimeSpan = exports.getDayTimeToMinutes = exports.getTimeDelta = void 0; /** * Functions in this file * * * import { getTimeDelta, getDayTimeToMinutes, getTimeSpan, getBestTimeDelta, getAge, createDeltaDateArrays } from '@mikezimm/npmfunctions/dist/Services/Time/deltas'; * */ var constants_1 = require("./constants"); var monthLabels_1 = require("./monthLabels"); function getTimeDelta(time1, time2, inWhat) { var date = new Date(time1).getTime(); var now = new Date(time2).getTime(); var age = (now - date); if (inWhat === 'months') { age = age / (1000 * 60 * 60 * 24 * 30.44); age = Math.round(age * 10) / 10; //2020-03-02: Added so that delta days is always whole number when in reality, 8 months out of the year there is an extra hour per day } else if (inWhat === 'days') { age = age / (1000 * 60 * 60 * 24); age = Math.round(age); //2020-03-02: Added so that delta days is always whole number when in reality, 8 months out of the year there is an extra hour per day } else if (inWhat === 'hours') { age = age / (1000 * 60 * 60); } else if (inWhat === 'minutes') { age = age / (1000 * 60); } else if (inWhat === 'seconds') { age = age / (1000); } else if (inWhat === 'ms') { age = age; } else if (inWhat === 'best') { } return age; } exports.getTimeDelta = getTimeDelta; function getDayTimeToMinutes(startTime) { var thisYear = new Date().getUTCFullYear(); var startYear = new Date(startTime).getUTCFullYear(); var replaceYear = (thisYear === startYear) ? "/" + thisYear : ""; var dateString = (new Date(startTime)).toLocaleDateString('short').replace(replaceYear, ''); var timeString = (new Date(startTime)).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); return [dateString, timeString].join(' '); } exports.getDayTimeToMinutes = getDayTimeToMinutes; function getTimeSpan(startTime, endTime) { //console.log('getBestTimeDelta', startTime, endTime); var theStartTime = getDayTimeToMinutes(startTime); var forString = '- for'; var deltaString = getBestTimeDelta(startTime, endTime); return [theStartTime, forString, deltaString].join(' '); } exports.getTimeSpan = getTimeSpan; function getBestTimeDelta(startTime, endTime) { var start = new Date(startTime).getTime(); var end = new Date(endTime).getTime(); var delta = end - start; //console.log('getBestTimeDelta', startTime, endTime); if (delta / (1000) < 60) { return delta / (1000) + ' seconds'; } else if (delta / (constants_1.msPerMin) < 60) { return ((delta / constants_1.msPerMin)).toFixed(0) + ' minutes'; } else if (delta / (constants_1.msPerHr) < 24) { return (delta / (constants_1.msPerHr)).toFixed(0) + ' hours'; } else if (delta / (constants_1.msPerDay) < 7) { return (delta / (constants_1.msPerDay)).toFixed(0) + ' days'; } else if (delta / (constants_1.msPerDay) < 30) { return (delta / (constants_1.msPerWk)).toFixed(0) + ' weeks'; } else if (delta / (constants_1.msPerMo) < 24) { return (delta / (constants_1.msPerMo)).toFixed(0) + ' months'; } else if (delta / (constants_1.msPerYr) < 4) { return (delta / (constants_1.msPerYr)).toFixed(0) + ' years'; } else { return 'Infinity and Beyond!'; } } exports.getBestTimeDelta = getBestTimeDelta; function getAge(time, inWhat) { var now = new Date().getTime(); var age = getTimeDelta(time, now, inWhat); return age; } exports.getAge = getAge; // function createDeltaDateArrays() { var result = { years: { daysAgo: [], daysAgoR: [], daysAgoNull: [], labelShort: [], labelLong: [], }, months: { daysAgo: [], daysAgoR: [], daysAgoNull: [], labelShort: [], labelLong: [], } }; var rightNow = new Date(); var todayYear = rightNow.getFullYear(); var todayMonth = rightNow.getMonth(); //Zero Index var todayDate = rightNow.getDate(); var todaysDate = new Date(todayYear, todayMonth, todayDate); for (var y = todayYear; y > todayYear - 4; y--) { for (var m = 11; m > -1; m--) { var thisDate = new Date(y, m, 1); var deltaDays = getTimeDelta(thisDate, todaysDate, 'days'); if (deltaDays > 0) { result.months.daysAgo.push(deltaDays); var roundedDays = Math.round(deltaDays); result.months.daysAgoR.push(roundedDays); result.months.labelShort.push(y.toString().substring(2) + '-' + monthLabels_1.monthStr3['en-us'][m]); result.months.labelLong.push(y.toString() + '-' + monthLabels_1.monthStr3['en-us'][m]); result.months.daysAgoNull[roundedDays] = null; if (m === 0) { result.years.daysAgo.push(deltaDays); result.years.daysAgoR.push(roundedDays); result.years.labelShort.push(y.toString().substring(2)); result.years.labelLong.push(y.toString()); result.years.daysAgoNull[roundedDays] = null; } } } } return result; } exports.createDeltaDateArrays = createDeltaDateArrays; //# sourceMappingURL=deltas.js.map