UNPKG

ilib

Version:

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

1 lines 3.13 kB
var LocaleInfo=require("./LocaleInfo.js");var IDate=function(t){};IDate._constructors={};IDate.prototype={getType:function(){return"date"},getTime:function(){return this.rd.getTime()},getTimeExtended:function(){return this.rd.getTimeExtended()},setTime:function(t){this.rd=this.newRd({unixtime:t,cal:this.cal});this._calcDateComponents()},getDays:function(){return this.day},getMonths:function(){return this.month},getYears:function(){return this.year},getHours:function(){return this.hour},getMinutes:function(){return this.minute},getSeconds:function(){return this.second},getMilliseconds:function(){return this.millisecond},getEra:function(){return this.year<1?-1:1},setDays:function(t){this.day=parseInt(t,10)||1;this.rd._setDateComponents(this)},setMonths:function(t){this.month=parseInt(t,10)||1;this.rd._setDateComponents(this)},setYears:function(t){this.year=parseInt(t,10)||0;this.rd._setDateComponents(this)},setHours:function(t){this.hour=parseInt(t,10)||0;this.rd._setDateComponents(this)},setMinutes:function(t){this.minute=parseInt(t,10)||0;this.rd._setDateComponents(this)},setSeconds:function(t){this.second=parseInt(t,10)||0;this.rd._setDateComponents(this)},setMilliseconds:function(t){this.millisecond=parseInt(t,10)||0;this.rd._setDateComponents(this)},before:function(t){return new this.constructor({rd:this.rd.before(t,this.offset),timezone:this.timezone})},after:function(t){return new this.constructor({rd:this.rd.after(t,this.offset),timezone:this.timezone})},onOrBefore:function(t){return new this.constructor({rd:this.rd.onOrBefore(t,this.offset),timezone:this.timezone})},onOrAfter:function(t){return new this.constructor({rd:this.rd.onOrAfter(t,this.offset),timezone:this.timezone})},getJSDate:function(){var t=this.rd.getTimeExtended();return isNaN(t)?undefined:new Date(t)},getRataDie:function(){return this.rd.getRataDie()},setRd:function(t){this.rd=this.newRd({rd:t,cal:this.cal});this._calcDateComponents()},getJulianDay:function(){return this.rd.getJulianDay()},setJulianDay:function(t){this.rd=this.newRd({julianday:typeof t==="object"?t.getDate():t,cal:this.cal});this._calcDateComponents()},getTimeZone:function(){return this.timezone||"local"},setTimeZone:function(t){if(!t||t===""){this.timezone=undefined;this.tz=undefined}else if(typeof t==="string"){this.timezone=t;this.tz=undefined;this._calcDateComponents()}},firstSunday:function(t){var e=this.newRd({year:t,month:1,day:1,hour:0,minute:0,second:0,millisecond:0,cal:this.cal});var n=this.newRd({rd:e.onOrAfter(4),cal:this.cal});return n.before(0)},getWeekOfYear:function(){var t=Math.floor(this.rd.getRataDie());var e=this._calcYear(t+this.offset);var n=this.firstSunday(e);var i;if(t<n){n=this.firstSunday(e-1)}else{i=this.firstSunday(e+1);if(t>=i){n=i}}return Math.floor((t-n)/7)+1},getWeekOfMonth:function(t){var e=new LocaleInfo(t);var n=this.newRd({year:this._calcYear(this.rd.getRataDie()+this.offset),month:this.getMonths(),day:1,hour:0,minute:0,second:0,millisecond:0,cal:this.cal});var i=n.onOrAfter(e.getFirstDayOfWeek());if(i-n.getRataDie()>3){i-=7}return Math.floor((this.rd.getRataDie()-i)/7)+1}};module.exports=IDate;