@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
161 lines • 6.85 kB
JavaScript
;
/***
* .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