date-object
Version:
JavaScript library for working with Date and Time in different calendars and locals
67 lines (54 loc) • 1.54 kB
JavaScript
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
const jalali = {
name: "jalali",
startYear: 1,
yearLength: 365,
epoch: 1948319,
century: 14,
weekStartDayIndex: 0,
getMonthLengths(isLeap) {
return [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, isLeap ? 30 : 29];
},
isLeap(year) {
return ((year + 12) % 33) % 4 === 1;
},
getLeaps(currentYear) {
if (currentYear === 0) return;
let year = currentYear > 0 ? 1 : -1;
let leaps = [],
condition = () =>
currentYear > 0 ? year <= currentYear : currentYear <= year,
increase = () => (currentYear > 0 ? year++ : year--);
while (condition()) {
if (this.isLeap(year)) leaps.push(year);
increase();
}
return leaps;
},
getDayOfYear({ month: { index }, day }) {
return (index <= 6 ? index * 31 : 6 * 31 + (index - 6) * 30) + day;
},
getAllDays(date) {
const { year } = date;
return (
this.yearLength * (year - 1) +
this.leapsLength(year) +
this.getDayOfYear(date)
);
},
leapsLength(year) {
return (((474 + mod(year - 474, 2820)) * 682 - 110) / 2816) | 0;
},
guessYear(days, currentYear) {
let year = ~~((days + 0.5) / 365.241);
return year + (currentYear > 0 ? 1 : -1);
},
};
var jalali_1 = jalali;
function mod(a, b) {
return a - b * ((a / b) | 0);
}
var jalali$1 = /*@__PURE__*/getDefaultExportFromCjs(jalali_1);
export { jalali$1 as default };