ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 1.59 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 second,minute,elapsed=HebrewCal.elapsedDays(date.year),elapsed=elapsed+HebrewCal.newYearsCorrection(date.year,elapsed)+date.day-1,sum=0,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++,elapsed+=sum,sum=void 0!==date.parts?(sum=parseInt(date.parts,10),sum=3.333333333333*parseInt(sum,10),(sum-=60*(minute=Math.floor(sum/60)))-(second=Math.floor(sum))):(minute=parseInt(date.minute,10)||0,second=parseInt(date.second,10)||0,parseInt(date.millisecond,10)||0),date=18<=date.hour?(36e5*(date.hour-18||0)+6e4*(minute||0)+1e3*(second||0)+(sum||0))/864e5:.25+(36e5*(date.hour||0)+6e4*(minute||0)+1e3*(second||0)+(sum||0))/864e5,this.rd=elapsed+date},HebrewRataDie.prototype._onOrBefore=function(rd,dayOfWeek){return rd-MathUtils.mod(Math.floor(rd)-dayOfWeek+1,7)},module.exports=HebrewRataDie;