|
|
import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from "./CalendarDate.mjs"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const $f2f3e0e3a817edbd$var$CIVIL_EPOC = 1948440; |
|
|
const $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC = 1948439; |
|
|
const $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START = 1300; |
|
|
const $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END = 1600; |
|
|
const $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS = 460322; |
|
|
function $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, day) { |
|
|
return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + epoch - 1; |
|
|
} |
|
|
function $f2f3e0e3a817edbd$var$julianDayToIslamic(calendar, epoch, jd) { |
|
|
let year = Math.floor((30 * (jd - epoch) + 10646) / 10631); |
|
|
let month = Math.min(12, Math.ceil((jd - (29 + $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, 1, 1))) / 29.5) + 1); |
|
|
let day = jd - $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, 1) + 1; |
|
|
return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(calendar, year, month, day); |
|
|
} |
|
|
function $f2f3e0e3a817edbd$var$isLeapYear(year) { |
|
|
return (14 + 11 * year) % 30 < 11; |
|
|
} |
|
|
class $f2f3e0e3a817edbd$export$2066795aadd37bfc { |
|
|
fromJulianDay(jd) { |
|
|
return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$CIVIL_EPOC, jd); |
|
|
} |
|
|
toJulianDay(date) { |
|
|
return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$CIVIL_EPOC, date.year, date.month, date.day); |
|
|
} |
|
|
getDaysInMonth(date) { |
|
|
let length = 29 + date.month % 2; |
|
|
if (date.month === 12 && $f2f3e0e3a817edbd$var$isLeapYear(date.year)) length++; |
|
|
return length; |
|
|
} |
|
|
getMonthsInYear() { |
|
|
return 12; |
|
|
} |
|
|
getDaysInYear(date) { |
|
|
return $f2f3e0e3a817edbd$var$isLeapYear(date.year) ? 355 : 354; |
|
|
} |
|
|
getYearsInEra() { |
|
|
|
|
|
return 9665; |
|
|
} |
|
|
getEras() { |
|
|
return [ |
|
|
'AH' |
|
|
]; |
|
|
} |
|
|
constructor(){ |
|
|
this.identifier = 'islamic-civil'; |
|
|
} |
|
|
} |
|
|
class $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc { |
|
|
fromJulianDay(jd) { |
|
|
return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, jd); |
|
|
} |
|
|
toJulianDay(date) { |
|
|
return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, date.year, date.month, date.day); |
|
|
} |
|
|
constructor(...args){ |
|
|
super(...args), this.identifier = 'islamic-tbla'; |
|
|
} |
|
|
} |
|
|
|
|
|
const $f2f3e0e3a817edbd$var$UMALQURA_DATA = 'qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI='; |
|
|
let $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH; |
|
|
let $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE; |
|
|
function $f2f3e0e3a817edbd$var$umalquraYearStart(year) { |
|
|
return $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS + $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START]; |
|
|
} |
|
|
function $f2f3e0e3a817edbd$var$umalquraMonthLength(year, month) { |
|
|
let idx = year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; |
|
|
let mask = 0x01 << 11 - (month - 1); |
|
|
if (($f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH[idx] & mask) === 0) return 29; |
|
|
else return 30; |
|
|
} |
|
|
function $f2f3e0e3a817edbd$var$umalquraMonthStart(year, month) { |
|
|
let day = $f2f3e0e3a817edbd$var$umalquraYearStart(year); |
|
|
for(let i = 1; i < month; i++)day += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i); |
|
|
return day; |
|
|
} |
|
|
function $f2f3e0e3a817edbd$var$umalquraYearLength(year) { |
|
|
return $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year + 1 - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START]; |
|
|
} |
|
|
class $f2f3e0e3a817edbd$export$5baab4758c231076 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc { |
|
|
fromJulianDay(jd) { |
|
|
let days = jd - $f2f3e0e3a817edbd$var$CIVIL_EPOC; |
|
|
let startDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_START); |
|
|
let endDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END); |
|
|
if (days < startDays || days > endDays) return super.fromJulianDay(jd); |
|
|
else { |
|
|
let y = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START - 1; |
|
|
let m = 1; |
|
|
let d = 1; |
|
|
while(d > 0){ |
|
|
y++; |
|
|
d = days - $f2f3e0e3a817edbd$var$umalquraYearStart(y) + 1; |
|
|
let yearLength = $f2f3e0e3a817edbd$var$umalquraYearLength(y); |
|
|
if (d === yearLength) { |
|
|
m = 12; |
|
|
break; |
|
|
} else if (d < yearLength) { |
|
|
let monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m); |
|
|
m = 1; |
|
|
while(d > monthLength){ |
|
|
d -= monthLength; |
|
|
m++; |
|
|
monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m); |
|
|
} |
|
|
break; |
|
|
} |
|
|
} |
|
|
return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, y, m, days - $f2f3e0e3a817edbd$var$umalquraMonthStart(y, m) + 1); |
|
|
} |
|
|
} |
|
|
toJulianDay(date) { |
|
|
if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.toJulianDay(date); |
|
|
return $f2f3e0e3a817edbd$var$CIVIL_EPOC + $f2f3e0e3a817edbd$var$umalquraMonthStart(date.year, date.month) + (date.day - 1); |
|
|
} |
|
|
getDaysInMonth(date) { |
|
|
if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInMonth(date); |
|
|
return $f2f3e0e3a817edbd$var$umalquraMonthLength(date.year, date.month); |
|
|
} |
|
|
getDaysInYear(date) { |
|
|
if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInYear(date); |
|
|
return $f2f3e0e3a817edbd$var$umalquraYearLength(date.year); |
|
|
} |
|
|
constructor(){ |
|
|
super(), this.identifier = 'islamic-umalqura'; |
|
|
if (!$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH) $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH = new Uint16Array(Uint8Array.from(atob($f2f3e0e3a817edbd$var$UMALQURA_DATA), (c)=>c.charCodeAt(0)).buffer); |
|
|
if (!$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE) { |
|
|
$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE = new Uint32Array($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START + 1); |
|
|
let yearStart = 0; |
|
|
for(let year = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; year <= $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END; year++){ |
|
|
$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] = yearStart; |
|
|
for(let i = 1; i <= 12; i++)yearStart += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
export {$f2f3e0e3a817edbd$export$2066795aadd37bfc as IslamicCivilCalendar, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 as IslamicTabularCalendar, $f2f3e0e3a817edbd$export$5baab4758c231076 as IslamicUmalquraCalendar}; |
|
|
|
|
|
|