shamsi-date-converter
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -1,9 +0,7 @@ | ||
/** 355746=361590-5844 & 361590=(30*33*365)+(30*8) & 5844=(16*365)+(16/4) | ||
355666=355746-79-1 & 355668=355746-79+1 & 1595=605+990 & 605=621-16 | ||
990=30*33 & 12053=(365*33)+(32/4) & 36524=(365*100)+(100/4)-(100/100) | ||
1461=(365*4)+(4/4) & 146097=(365*400)+(400/4)-(400/100)+(400/400) */ | ||
declare type monthType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12; | ||
declare type dayType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31; | ||
export declare function gregorianToJalali(gy: number, gm: monthType, gd: dayType): [number, number, number]; | ||
export declare function jalaliToGregorian(jy: number, jm: monthType, jd: dayType): [number, number, number]; | ||
import * as shamsi from 'shamsi'; | ||
declare type MonthType = shamsi.MonthType; | ||
declare type DayType = shamsi.DayType; | ||
export declare const jalaliToGregorian: typeof shamsi.jalaliToGregorian; | ||
export declare function gregorianToJalali(yearOrDate: string | Date): [number, number, number]; | ||
export declare function gregorianToJalali(yearOrDate: number, month: MonthType, date: DayType): [number, number, number]; | ||
export {}; |
"use strict"; | ||
// import * as shamsi from 'shamsi'; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.jalaliToGregorian = exports.gregorianToJalali = void 0; | ||
function gregorianToJalali(gy, gm, gd) { | ||
var gdm, jy, jm, jd, gy2, days; | ||
gdm = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; | ||
gy2 = gm > 2 ? gy + 1 : gy; | ||
days = | ||
355666 + | ||
365 * gy + | ||
~~((gy2 + 3) / 4) - | ||
~~((gy2 + 99) / 100) + | ||
~~((gy2 + 399) / 400) + | ||
gd + | ||
gdm[gm - 1]; | ||
jy = -1595 + 33 * ~~(days / 12053); | ||
days %= 12053; | ||
jy += 4 * ~~(days / 1461); | ||
days %= 1461; | ||
if (days > 365) { | ||
jy += ~~((days - 1) / 365); | ||
days = (days - 1) % 365; | ||
exports.gregorianToJalali = exports.jalaliToGregorian = void 0; | ||
var shamsi = require("shamsi"); | ||
var gtj = shamsi.gregorianToJalali, jtg = shamsi.jalaliToGregorian; | ||
exports.jalaliToGregorian = jtg; | ||
function gregorianToJalali(yearOrDate, month, day) { | ||
if (typeof yearOrDate !== 'number') { | ||
var date = new Date(yearOrDate); | ||
var y = date.getFullYear(); | ||
var m = (date.getMonth() + 1); | ||
var d = date.getDate(); | ||
return gtj(y, m, d); | ||
} | ||
if (days < 186) { | ||
jm = 1 + ~~(days / 31); | ||
jd = 1 + (days % 31); | ||
} | ||
else { | ||
jm = 7 + ~~((days - 186) / 30); | ||
jd = 1 + ((days - 186) % 30); | ||
return gtj(yearOrDate, month, day); | ||
} | ||
return [jy, jm, jd]; | ||
} | ||
exports.gregorianToJalali = gregorianToJalali; | ||
function jalaliToGregorian(jy, jm, jd) { | ||
var salA, gy, gm, gd, days; | ||
jy += 1595; | ||
days = | ||
-355668 + | ||
365 * jy + | ||
~~(jy / 33) * 8 + | ||
~~(((jy % 33) + 3) / 4) + | ||
jd + | ||
(jm < 7 ? (jm - 1) * 31 : (jm - 7) * 30 + 186); | ||
gy = 400 * ~~(days / 146097); | ||
days %= 146097; | ||
if (days > 36524) { | ||
gy += 100 * ~~(--days / 36524); | ||
days %= 36524; | ||
if (days >= 365) { | ||
days++; | ||
} | ||
} | ||
gy += 4 * ~~(days / 1461); | ||
days %= 1461; | ||
if (days > 365) { | ||
gy += ~~((days - 1) / 365); | ||
days = (days - 1) % 365; | ||
} | ||
gd = days + 1; | ||
salA = [ | ||
0, | ||
31, | ||
(gy % 4 === 0 && gy % 100 !== 0) || gy % 400 === 0 ? 29 : 28, | ||
31, | ||
30, | ||
31, | ||
30, | ||
31, | ||
31, | ||
30, | ||
31, | ||
30, | ||
31, | ||
]; | ||
for (gm = 0; gm < 13 && gd > salA[gm]; gm++) { | ||
gd -= salA[gm]; | ||
} | ||
return [gy, gm, gd]; | ||
} | ||
exports.jalaliToGregorian = jalaliToGregorian; |
{ | ||
"name": "shamsi-date-converter", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "A minimal Jalali to Gregorian and Gregorian to Jalali converter", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
6528
26