183 lines
3.1 KiB
JavaScript
183 lines
3.1 KiB
JavaScript
//>>built
|
|
define("dojox/date/hebrew",["..","dojo/_base/lang","dojo/date","./hebrew/Date"],function(_1,_2,dd,_3){
|
|
var _4=_2.getObject("date.hebrew",true,_1);
|
|
_4.getDaysInMonth=function(_5){
|
|
return _5.getDaysInHebrewMonth(_5.getMonth(),_5.getFullYear());
|
|
};
|
|
_4.compare=function(_6,_7,_8){
|
|
if(_6 instanceof _3){
|
|
_6=_6.toGregorian();
|
|
}
|
|
if(_7 instanceof _3){
|
|
_7=_7.toGregorian();
|
|
}
|
|
return dd.compare.apply(null,arguments);
|
|
};
|
|
_4.add=function(_9,_a,_b){
|
|
var _c=new _3(_9);
|
|
switch(_a){
|
|
case "day":
|
|
_c.setDate(_9.getDate()+_b);
|
|
break;
|
|
case "weekday":
|
|
var _d=_9.getDay();
|
|
var _e=0;
|
|
if(_b<0&&_d==6){
|
|
_d=5;
|
|
_e=-1;
|
|
}
|
|
if((_d+_b)<5&&(_d+_b)>=0){
|
|
_c.setDate(_9.getDate()+_b+_e);
|
|
}else{
|
|
var _f=(_b>0)?5:-1;
|
|
var _10=(_b>0)?2:-2;
|
|
if(_b>0&&(_d==5||_d==6)){
|
|
_e=4-_d;
|
|
_d=4;
|
|
}
|
|
var _11=_d+_b-_f;
|
|
var _12=parseInt(_11/5);
|
|
var _13=_11%5;
|
|
_c.setDate(_9.getDate()-_d+_10+_12*7+_e+_13+_f);
|
|
}
|
|
break;
|
|
case "year":
|
|
_c.setFullYear(_9.getFullYear()+_b);
|
|
break;
|
|
case "week":
|
|
_b*=7;
|
|
_c.setDate(_9.getDate()+_b);
|
|
break;
|
|
case "month":
|
|
var _14=_9.getMonth(),_15=_14+_b;
|
|
if(!_9.isLeapYear(_9.getFullYear())){
|
|
if(_14<5&&_15>=5){
|
|
_15++;
|
|
}else{
|
|
if(_14>5&&_15<=5){
|
|
_15--;
|
|
}
|
|
}
|
|
}
|
|
_c.setMonth(_15);
|
|
break;
|
|
case "hour":
|
|
_c.setHours(_9.getHours()+_b);
|
|
break;
|
|
case "minute":
|
|
_c._addMinutes(_b);
|
|
break;
|
|
case "second":
|
|
_c._addSeconds(_b);
|
|
break;
|
|
case "millisecond":
|
|
_c._addMilliseconds(_b);
|
|
break;
|
|
}
|
|
return _c;
|
|
};
|
|
_4.difference=function(_16,_17,_18){
|
|
_17=_17||new _3();
|
|
_18=_18||"day";
|
|
var _19=_17.getFullYear()-_16.getFullYear();
|
|
var _1a=1;
|
|
switch(_18){
|
|
case "weekday":
|
|
var _1b=Math.round(_4.difference(_16,_17,"day"));
|
|
var _1c=parseInt(_4.difference(_16,_17,"week"));
|
|
var mod=_1b%7;
|
|
if(mod==0){
|
|
_1b=_1c*5;
|
|
}else{
|
|
var adj=0;
|
|
var _1d=_16.getDay();
|
|
var _1e=_17.getDay();
|
|
_1c=parseInt(_1b/7);
|
|
mod=_1b%7;
|
|
var _1f=new _3(_16);
|
|
_1f.setDate(_1f.getDate()+(_1c*7));
|
|
var _20=_1f.getDay();
|
|
if(_1b>0){
|
|
switch(true){
|
|
case _1d==5:
|
|
adj=-1;
|
|
break;
|
|
case _1d==6:
|
|
adj=0;
|
|
break;
|
|
case _1e==5:
|
|
adj=-1;
|
|
break;
|
|
case _1e==6:
|
|
adj=-2;
|
|
break;
|
|
case (_20+mod)>5:
|
|
adj=-2;
|
|
}
|
|
}else{
|
|
if(_1b<0){
|
|
switch(true){
|
|
case _1d==5:
|
|
adj=0;
|
|
break;
|
|
case _1d==6:
|
|
adj=1;
|
|
break;
|
|
case _1e==5:
|
|
adj=2;
|
|
break;
|
|
case _1e==6:
|
|
adj=1;
|
|
break;
|
|
case (_20+mod)<0:
|
|
adj=2;
|
|
}
|
|
}
|
|
}
|
|
_1b+=adj;
|
|
_1b-=(_1c*2);
|
|
}
|
|
_1a=_1b;
|
|
break;
|
|
case "year":
|
|
_1a=_19;
|
|
break;
|
|
case "month":
|
|
var _21=(_17.toGregorian()>_16.toGregorian())?_17:_16;
|
|
var _22=(_17.toGregorian()>_16.toGregorian())?_16:_17;
|
|
var _23=_21.getMonth();
|
|
var _24=_22.getMonth();
|
|
if(_19==0){
|
|
_1a=(!_17.isLeapYear(_17.getFullYear())&&_21.getMonth()>5&&_22.getMonth()<=5)?(_21.getMonth()-_22.getMonth()-1):(_21.getMonth()-_22.getMonth());
|
|
}else{
|
|
_1a=(!_22.isLeapYear(_22.getFullYear())&&_24<6)?(13-_24-1):(13-_24);
|
|
_1a+=(!_21.isLeapYear(_21.getFullYear())&&_23>5)?(_23-1):_23;
|
|
var i=_22.getFullYear()+1;
|
|
var e=_21.getFullYear();
|
|
for(i;i<e;i++){
|
|
_1a+=_22.isLeapYear(i)?13:12;
|
|
}
|
|
}
|
|
if(_17.toGregorian()<_16.toGregorian()){
|
|
_1a=-_1a;
|
|
}
|
|
break;
|
|
case "week":
|
|
_1a=parseInt(_4.difference(_16,_17,"day")/7);
|
|
break;
|
|
case "day":
|
|
_1a/=24;
|
|
case "hour":
|
|
_1a/=60;
|
|
case "minute":
|
|
_1a/=60;
|
|
case "second":
|
|
_1a/=1000;
|
|
case "millisecond":
|
|
_1a*=_17.toGregorian().getTime()-_16.toGregorian().getTime();
|
|
}
|
|
return Math.round(_1a);
|
|
};
|
|
return _4;
|
|
});
|