INIT
This commit is contained in:
+167
@@ -0,0 +1,167 @@
|
||||
import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from "./CalendarDate.module.js";
|
||||
|
||||
/*
|
||||
* 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.
|
||||
|
||||
const $b956b2d7a6cf451f$var$ETHIOPIC_EPOCH = 1723856;
|
||||
const $b956b2d7a6cf451f$var$COPTIC_EPOCH = 1824665;
|
||||
// The delta between Amete Alem 1 and Amete Mihret 1
|
||||
// AA 5501 = AM 1
|
||||
const $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA = 5500;
|
||||
function $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, day) {
|
||||
return epoch // difference from Julian epoch to 1,1,1
|
||||
+ 365 * year // number of days from years
|
||||
+ Math.floor(year / 4) // extra day of leap year
|
||||
+ 30 * (month - 1 // number of days from months (1 based)
|
||||
) + day - 1 // number of days for present month (1 based)
|
||||
;
|
||||
}
|
||||
function $b956b2d7a6cf451f$var$julianDayToCE(epoch, jd) {
|
||||
let year = Math.floor(4 * (jd - epoch) / 1461);
|
||||
let month = 1 + Math.floor((jd - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, 1, 1)) / 30);
|
||||
let day = jd + 1 - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, 1);
|
||||
return [
|
||||
year,
|
||||
month,
|
||||
day
|
||||
];
|
||||
}
|
||||
function $b956b2d7a6cf451f$var$getLeapDay(year) {
|
||||
return Math.floor(year % 4 / 3);
|
||||
}
|
||||
function $b956b2d7a6cf451f$var$getDaysInMonth(year, month) {
|
||||
// The Ethiopian and Coptic calendars have 13 months, 12 of 30 days each and
|
||||
// an intercalary month at the end of the year of 5 or 6 days, depending whether
|
||||
// the year is a leap year or not. The Leap Year follows the same rules as the
|
||||
// Julian Calendar so that the extra month always has six days in the year before
|
||||
// a Julian Leap Year.
|
||||
if (month % 13 !== 0) // not intercalary month
|
||||
return 30;
|
||||
else // intercalary month 5 days + possible leap day
|
||||
return $b956b2d7a6cf451f$var$getLeapDay(year) + 5;
|
||||
}
|
||||
class $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {
|
||||
fromJulianDay(jd) {
|
||||
let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);
|
||||
let era = 'AM';
|
||||
if (year <= 0) {
|
||||
era = 'AA';
|
||||
year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;
|
||||
}
|
||||
return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);
|
||||
}
|
||||
toJulianDay(date) {
|
||||
let year = date.year;
|
||||
if (date.era === 'AA') year -= $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;
|
||||
return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, year, date.month, date.day);
|
||||
}
|
||||
getDaysInMonth(date) {
|
||||
return $b956b2d7a6cf451f$var$getDaysInMonth(date.year, date.month);
|
||||
}
|
||||
getMonthsInYear() {
|
||||
return 13;
|
||||
}
|
||||
getDaysInYear(date) {
|
||||
return 365 + $b956b2d7a6cf451f$var$getLeapDay(date.year);
|
||||
}
|
||||
getMaximumMonthsInYear() {
|
||||
return 13;
|
||||
}
|
||||
getMaximumDaysInMonth() {
|
||||
return 30;
|
||||
}
|
||||
getYearsInEra(date) {
|
||||
// 9999-12-31 gregorian is 9992-20-02 ethiopic.
|
||||
// Round down to 9991 for the last full year.
|
||||
// AA 9999-01-01 ethiopic is 4506-09-30 gregorian.
|
||||
return date.era === 'AA' ? 9999 : 9991;
|
||||
}
|
||||
getEras() {
|
||||
return [
|
||||
'AA',
|
||||
'AM'
|
||||
];
|
||||
}
|
||||
constructor(){
|
||||
this.identifier = 'ethiopic';
|
||||
}
|
||||
}
|
||||
class $b956b2d7a6cf451f$export$d72e0c37005a4914 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {
|
||||
fromJulianDay(jd) {
|
||||
let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);
|
||||
year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;
|
||||
return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, 'AA', year, month, day);
|
||||
}
|
||||
getEras() {
|
||||
return [
|
||||
'AA'
|
||||
];
|
||||
}
|
||||
getYearsInEra() {
|
||||
// 9999-13-04 ethioaa is the maximum date, which is equivalent to 4506-09-29 gregorian.
|
||||
return 9999;
|
||||
}
|
||||
constructor(...args){
|
||||
super(...args), this.identifier = 'ethioaa' // also known as 'ethiopic-amete-alem' in ICU
|
||||
;
|
||||
}
|
||||
}
|
||||
class $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {
|
||||
fromJulianDay(jd) {
|
||||
let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$COPTIC_EPOCH, jd);
|
||||
let era = 'CE';
|
||||
if (year <= 0) {
|
||||
era = 'BCE';
|
||||
year = 1 - year;
|
||||
}
|
||||
return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);
|
||||
}
|
||||
toJulianDay(date) {
|
||||
let year = date.year;
|
||||
if (date.era === 'BCE') year = 1 - year;
|
||||
return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$COPTIC_EPOCH, year, date.month, date.day);
|
||||
}
|
||||
getDaysInMonth(date) {
|
||||
let year = date.year;
|
||||
if (date.era === 'BCE') year = 1 - year;
|
||||
return $b956b2d7a6cf451f$var$getDaysInMonth(year, date.month);
|
||||
}
|
||||
isInverseEra(date) {
|
||||
return date.era === 'BCE';
|
||||
}
|
||||
balanceDate(date) {
|
||||
if (date.year <= 0) {
|
||||
date.era = date.era === 'BCE' ? 'CE' : 'BCE';
|
||||
date.year = 1 - date.year;
|
||||
}
|
||||
}
|
||||
getEras() {
|
||||
return [
|
||||
'BCE',
|
||||
'CE'
|
||||
];
|
||||
}
|
||||
getYearsInEra(date) {
|
||||
// 9999-12-30 gregorian is 9716-02-20 coptic.
|
||||
// Round down to 9715 for the last full year.
|
||||
// BCE 9999-01-01 coptic is BC 9716-06-15 gregorian.
|
||||
return date.era === 'BCE' ? 9999 : 9715;
|
||||
}
|
||||
constructor(...args){
|
||||
super(...args), this.identifier = 'coptic';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export {$b956b2d7a6cf451f$export$26ba6eab5e20cd7d as EthiopicCalendar, $b956b2d7a6cf451f$export$d72e0c37005a4914 as EthiopicAmeteAlemCalendar, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 as CopticCalendar};
|
||||
//# sourceMappingURL=EthiopicCalendar.module.js.map
|
||||
Reference in New Issue
Block a user