INIT
This commit is contained in:
+106
@@ -0,0 +1,106 @@
|
||||
var $625ad1e1f4c43bc1$exports = require("./CalendarDate.main.js");
|
||||
var $af14c9812fdceb33$exports = require("./GregorianCalendar.main.js");
|
||||
|
||||
|
||||
function $parcel$export(e, n, v, s) {
|
||||
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
||||
}
|
||||
|
||||
$parcel$export(module.exports, "IndianCalendar", () => $5f1dfa5c67609fe6$export$39f31c639fa15726);
|
||||
/*
|
||||
* Copyright 2020 Adobe. All rights reserved.
|
||||
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License. You may obtain a copy
|
||||
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under
|
||||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
||||
* OF ANY KIND, either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/ // Portions of the code in this file are based on code from ICU.
|
||||
// Original licensing can be found in the NOTICE file in the root directory of this source tree.
|
||||
|
||||
|
||||
// Starts in 78 AD,
|
||||
const $5f1dfa5c67609fe6$var$INDIAN_ERA_START = 78;
|
||||
// The Indian year starts 80 days later than the Gregorian year.
|
||||
const $5f1dfa5c67609fe6$var$INDIAN_YEAR_START = 80;
|
||||
class $5f1dfa5c67609fe6$export$39f31c639fa15726 extends (0, $af14c9812fdceb33$exports.GregorianCalendar) {
|
||||
fromJulianDay(jd) {
|
||||
// Gregorian date for Julian day
|
||||
let date = super.fromJulianDay(jd);
|
||||
// Year in Saka era
|
||||
let indianYear = date.year - $5f1dfa5c67609fe6$var$INDIAN_ERA_START;
|
||||
// Day number in Gregorian year (starting from 0)
|
||||
let yDay = jd - (0, $af14c9812fdceb33$exports.gregorianToJulianDay)(date.era, date.year, 1, 1);
|
||||
let leapMonth;
|
||||
if (yDay < $5f1dfa5c67609fe6$var$INDIAN_YEAR_START) {
|
||||
// Day is at the end of the preceding Saka year
|
||||
indianYear--;
|
||||
// Days in leapMonth this year, previous Gregorian year
|
||||
leapMonth = (0, $af14c9812fdceb33$exports.isLeapYear)(date.year - 1) ? 31 : 30;
|
||||
yDay += leapMonth + 155 + 90 + 10;
|
||||
} else {
|
||||
// Days in leapMonth this year
|
||||
leapMonth = (0, $af14c9812fdceb33$exports.isLeapYear)(date.year) ? 31 : 30;
|
||||
yDay -= $5f1dfa5c67609fe6$var$INDIAN_YEAR_START;
|
||||
}
|
||||
let indianMonth;
|
||||
let indianDay;
|
||||
if (yDay < leapMonth) {
|
||||
indianMonth = 1;
|
||||
indianDay = yDay + 1;
|
||||
} else {
|
||||
let mDay = yDay - leapMonth;
|
||||
if (mDay < 155) {
|
||||
indianMonth = Math.floor(mDay / 31) + 2;
|
||||
indianDay = mDay % 31 + 1;
|
||||
} else {
|
||||
mDay -= 155;
|
||||
indianMonth = Math.floor(mDay / 30) + 7;
|
||||
indianDay = mDay % 30 + 1;
|
||||
}
|
||||
}
|
||||
return new (0, $625ad1e1f4c43bc1$exports.CalendarDate)(this, indianYear, indianMonth, indianDay);
|
||||
}
|
||||
toJulianDay(date) {
|
||||
let extendedYear = date.year + $5f1dfa5c67609fe6$var$INDIAN_ERA_START;
|
||||
let [era, year] = (0, $af14c9812fdceb33$exports.fromExtendedYear)(extendedYear);
|
||||
let leapMonth;
|
||||
let jd;
|
||||
if ((0, $af14c9812fdceb33$exports.isLeapYear)(year)) {
|
||||
leapMonth = 31;
|
||||
jd = (0, $af14c9812fdceb33$exports.gregorianToJulianDay)(era, year, 3, 21);
|
||||
} else {
|
||||
leapMonth = 30;
|
||||
jd = (0, $af14c9812fdceb33$exports.gregorianToJulianDay)(era, year, 3, 22);
|
||||
}
|
||||
if (date.month === 1) return jd + date.day - 1;
|
||||
jd += leapMonth + Math.min(date.month - 2, 5) * 31;
|
||||
if (date.month >= 8) jd += (date.month - 7) * 30;
|
||||
jd += date.day - 1;
|
||||
return jd;
|
||||
}
|
||||
getDaysInMonth(date) {
|
||||
if (date.month === 1 && (0, $af14c9812fdceb33$exports.isLeapYear)(date.year + $5f1dfa5c67609fe6$var$INDIAN_ERA_START)) return 31;
|
||||
if (date.month >= 2 && date.month <= 6) return 31;
|
||||
return 30;
|
||||
}
|
||||
getYearsInEra() {
|
||||
// 9999-12-31 gregorian is 9920-10-10 indian.
|
||||
// Round down to 9919 for the last full year.
|
||||
return 9919;
|
||||
}
|
||||
getEras() {
|
||||
return [
|
||||
'saka'
|
||||
];
|
||||
}
|
||||
balanceDate() {}
|
||||
constructor(...args){
|
||||
super(...args), this.identifier = 'indian';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//# sourceMappingURL=IndianCalendar.main.js.map
|
||||
Reference in New Issue
Block a user