UNPKG

simple-pure-utils

Version:

Funciones puras para manipulación de objetos, arreglos, promesas y observables

129 lines • 9.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTimeIntervalScale = exports.dateDiff = exports.addDate = exports.truncateDate = void 0; const _1 = require("."); /**Trunca la parte menos significativa de una fecha */ function truncateDate(value, precision) { const year = value.getFullYear(); const month = value.getMonth(); const day = value.getDate(); const hour = value.getHours(); const minutes = value.getMinutes(); const seconds = value.getSeconds(); switch (precision) { case "milliseconds": return value; case "seconds": return new Date(year, month, day, hour, minutes, seconds); case "minutes": return new Date(year, month, day, hour, minutes); case "hours": return new Date(year, month, day, hour); case "days": return new Date(year, month, day); case "months": return new Date(year, month); case "years": return new Date(year, 0); } } exports.truncateDate = truncateDate; /**Suma un valor en cierta unidad a una fecha */ function addDate(date, units, value) { const ms = date.valueOf(); switch (units) { case "milliseconds": return new Date(ms + value); case "seconds": return new Date(ms + value * 1000); case "minutes": return new Date(ms + value * 1000 * 60); case "hours": return new Date(ms + value * 1000 * 60 * 60); case "days": //Note que no podemos sumar 24 horas por dia por lo del cambio de horario { const a = new Date(ms); a.setDate(a.getDate() + value); return a; } case "months": { const a = new Date(ms); a.setMonth(a.getMonth() + value); return a; } case "years": { const a = new Date(ms); a.setFullYear(a.getFullYear() + value); return a; } } } exports.addDate = addDate; /** * Returns a - b */ function dateDiff(a, b, units) { let x = a.valueOf() - b.valueOf(); if (units == "milliseconds") return x; x /= 1000; if (units == "seconds") return x; x /= 60; if (units == "minutes") return x; x /= 60; if (units == "hours") return x; x /= 24; if (units == "days") return x; (0, _1.assertUnreachable)(units); } exports.dateDiff = dateDiff; /** Returns a user friendly scale for the given time interval */ function getTimeIntervalScale(seconds) { if (seconds < 60) { return { amount: seconds, units: "seconds", type: seconds < 1 ? "zero" : seconds == 1 ? "one" : seconds < 10 ? "few" : "number" }; } const minutes = Math.floor(seconds / 60); if (minutes < 30) { return { amount: minutes, units: "minutes", type: minutes < 2 ? "one" : "number" }; } const hours = Math.floor(minutes / 60); if (hours < 24) { return { amount: hours, units: "hours", type: minutes <= 30 ? "half" : hours < 2 ? "one" : "number" }; } const daysInYear = 364.25; const daysInMonth = daysInYear / 12; const days = Math.floor(hours / 24); if (days < daysInMonth) { return { amount: days, units: "days", type: days < 2 ? "one" : "number" }; } const months = Math.floor(days / daysInMonth); if (months < 12) { return { amount: months, units: "months", type: months < 2 ? "one" : "number" }; } const years = Math.floor(days / daysInYear); return { amount: years, units: "years", type: years < 2 ? "one" : "number" }; } exports.getTimeIntervalScale = getTimeIntervalScale; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0JBQXNDO0FBR3RDLHNEQUFzRDtBQUN0RCxTQUFnQixZQUFZLENBQUMsS0FBVyxFQUFFLFNBQW9CO0lBQzFELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRW5DLFFBQVEsU0FBUyxFQUFFO1FBQ2YsS0FBSyxjQUFjO1lBQ2YsT0FBTyxLQUFLLENBQUM7UUFDakIsS0FBSyxTQUFTO1lBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlELEtBQUssU0FBUztZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELEtBQUssT0FBTztZQUNSLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsS0FBSyxNQUFNO1lBQ1AsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssUUFBUTtZQUNULE9BQU8sSUFBSSxJQUFJ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