UNPKG

ilib

Version:

iLib is a cross-engine library of internationalization (i18n) classes written in pure JS

1 lines 1.48 kB
var ilib=require("./ilib.js");var MathUtils=require("./MathUtils.js");var HanCal=require("./HanCal.js");var RataDie=require("./RataDie.js");var HanRataDie=function(a){this.rd=undefined;if(a&&a.cal){this.cal=a.cal;RataDie.call(this,a);if(a&&typeof a.callback==="function"){a.callback(this)}}else{new HanCal({sync:a&&a.sync,loadParams:a&&a.loadParams,callback:ilib.bind(this,function(e){this.cal=e;RataDie.call(this,a);if(a&&typeof a.callback==="function"){a.callback(this)}})})}};HanRataDie.prototype=new RataDie;HanRataDie.prototype.parent=RataDie;HanRataDie.prototype.constructor=HanRataDie;HanRataDie.epoch=758325.5;HanRataDie.prototype._setDateComponents=function(a){var e=HanCal._leapYearCalc(a.year,a.cycle);var n=HanCal._newMoonOnOrAfter(e.m1+1);var t;this.leapYear=Math.round((e.m2-e.m1)/29.530588853)===12;if(this.leapYear&&(HanCal._noMajorST(e.m1)||HanCal._noMajorST(n))){t=HanCal._newMoonOnOrAfter(n+1)}else{t=n}var o=HanCal._newMoonOnOrAfter(e.m1+a.month*29);this.priorLeapMonth=HanRataDie._priorLeapMonth(t,HanCal._newMoonBefore(o));this.leapMonth=this.leapYear&&HanCal._noMajorST(o)&&!this.priorLeapMonth;var i=(a.hour*36e5+a.minute*6e4+a.second*1e3+a.millisecond)/864e5;this.rd=o+a.day-1+i-RataDie.gregorianEpoch};HanRataDie.prototype._onOrBefore=function(a,e){return a-MathUtils.mod(Math.floor(a)-e,7)};HanRataDie._priorLeapMonth=function(a,e){return e>=a&&(HanRataDie._priorLeapMonth(a,HanCal._newMoonBefore(e))||HanCal._noMajorST(e))};module.exports=HanRataDie;