ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 1.66 kB
JavaScript
var HebrewCal=require("./HebrewCal.js"),MathUtils=require("./MathUtils.js"),RataDie=require("./RataDie.js"),HebrewRataDie=function(params){this.cal=params&¶ms.cal||new HebrewCal(),this.rd=NaN,RataDie.call(this,params)};HebrewRataDie.prototype=new RataDie(),HebrewRataDie.prototype.parent=RataDie,(HebrewRataDie.prototype.constructor=HebrewRataDie).prototype.epoch=347997.25,HebrewRataDie.cumMonthLengths=[176,206,235,265,294,324,0,30,59,88,117,147],HebrewRataDie.cumMonthLengthsLeap=[206,236,265,295,324,354,0,30,59,88,117,147,177],HebrewRataDie.prototype._setDateComponents=function(date){var minute,second,millisecond,time,elapsed=HebrewCal.elapsedDays(date.year),days=elapsed+HebrewCal.newYearsCorrection(date.year,elapsed)+date.day-1,sum=0;if(sum=(this.cal.isLeapYear(date.year)?HebrewRataDie.cumMonthLengthsLeap:HebrewRataDie.cumMonthLengths)[date.month-1],(date.month<7||8<date.month)&&HebrewCal.longHeshvan(date.year)&&sum++,(date.month<7||9<date.month)&&HebrewCal.longKislev(date.year)&&sum++,days+=sum,void 0!==date.parts){var parts=parseInt(date.parts,10),seconds=3.333333333333*parseInt(parts,10);millisecond=(seconds-=60*(minute=Math.floor(seconds/60)))-(second=Math.floor(seconds))}else minute=parseInt(date.minute,10)||0,second=parseInt(date.second,10)||0,millisecond=parseInt(date.millisecond,10)||0;time=18<=date.hour?(36e5*(date.hour-18||0)+6e4*(minute||0)+1e3*(second||0)+(millisecond||0))/864e5:.25+(36e5*(date.hour||0)+6e4*(minute||0)+1e3*(second||0)+(millisecond||0))/864e5,this.rd=days+time},HebrewRataDie.prototype._onOrBefore=function(rd,dayOfWeek){return rd-MathUtils.mod(Math.floor(rd)-dayOfWeek+1,7)},module.exports=HebrewRataDie;