UNPKG

ilib

Version:

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

1 lines 1.65 kB
var ilib=require("./ilib.js"),MathUtils=require("./MathUtils.js"),HanCal=require("./HanCal.js"),RataDie=require("./RataDie.js"),HanRataDie=function(params){this.rd=NaN,params&&params.cal?(this.cal=params.cal,RataDie.call(this,params),params&&"function"==typeof params.callback&&params.callback(this)):new HanCal({sync:params&&params.sync,loadParams:params&&params.loadParams,onLoad:ilib.bind(this,function(c){this.cal=c,RataDie.call(this,params),params&&"function"==typeof params.callback&&params.callback(this)})})};HanRataDie.prototype=new RataDie(),HanRataDie.prototype.parent=RataDie,(HanRataDie.prototype.constructor=HanRataDie).epoch=758325.5,HanRataDie.prototype._setDateComponents=function(date){var newYears,calc=HanCal._leapYearCalc(date.year,date.cycle),m2=HanCal._newMoonOnOrAfter(calc.m1+1);this.leapYear=12===Math.round((calc.m2-calc.m1)/29.530588853),newYears=this.leapYear&&(HanCal._noMajorST(calc.m1)||HanCal._noMajorST(m2))?HanCal._newMoonOnOrAfter(m2+1):m2;var priorNewMoon=HanCal._newMoonOnOrAfter(calc.m1+29*date.month);this.priorLeapMonth=HanRataDie._priorLeapMonth(newYears,HanCal._newMoonBefore(priorNewMoon)),this.leapMonth=this.leapYear&&HanCal._noMajorST(priorNewMoon)&&!this.priorLeapMonth;var rdtime=(36e5*date.hour+6e4*date.minute+1e3*date.second+date.millisecond)/864e5;this.rd=priorNewMoon+date.day-1+rdtime-RataDie.gregorianEpoch},HanRataDie.prototype._onOrBefore=function(rd,dayOfWeek){return rd-MathUtils.mod(Math.floor(rd)-dayOfWeek,7)},HanRataDie._priorLeapMonth=function(jd1,jd2){return jd1<=jd2&&(HanRataDie._priorLeapMonth(jd1,HanCal._newMoonBefore(jd2))||HanCal._noMajorST(jd2))},module.exports=HanRataDie;