islamic.js 3.1 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.date.islamic"]){dojo._hasResource["dojox.date.islamic"]=true;dojo.provide("dojox.date.islamic");dojo.experimental("dojox.date.islamic");dojo.require("dojox.date.islamic.Date");dojo.require("dojo.date");dojox.date.islamic.getDaysInMonth=function(_1){return _1.getDaysInIslamicMonth(_1.getMonth(),_1.getFullYear());};dojox.date.islamic.compare=function(_2,_3,_4){if(_2 instanceof dojox.date.islamic.Date){_2=_2.toGregorian();}if(_3 instanceof dojox.date.islamic.Date){_3=_3.toGregorian();}return dojo.date.compare.apply(null,arguments);};dojox.date.islamic.add=function(_5,_6,_7){var _8=new dojox.date.islamic.Date(_5);switch(_6){case "day":_8.setDate(_5.getDate()+_7);break;case "weekday":var _9=_5.getDay();if(((_9+_7)<5)&&((_9+_7)>0)){_8.setDate(_5.getDate()+_7);}else{var _a=0,_b=0;if(_9==5){_9=4;_b=(_7>0)?-1:1;}else{if(_9==6){_9=4;_b=(_7>0)?-2:2;}}var _c=(_7>0)?(5-_9-1):-_9;var _d=_7-_c;var _e=parseInt(_d/5);if(_d%5!=0){_a=(_7>0)?2:-2;}_a=_a+_e*7+_d%5+_c;_8.setDate(_5.getDate()+_a+_b);}break;case "year":_8.setFullYear(_5.getFullYear()+_7);break;case "week":_7*=7;_8.setDate(_5.getDate()+_7);break;case "month":var _f=_5.getMonth();_8.setMonth(_f+_7);break;case "hour":_8.setHours(_5.getHours()+_7);break;case "minute":_8.setMinutes(_5.getMinutes()+_7);break;case "second":_8.setSeconds(_5.getSeconds()+_7);break;case "millisecond":_8.setMilliseconds(_5.getMilliseconds()+_7);break;}return _8;};dojox.date.islamic.difference=function(_10,_11,_12){_11=_11||new dojox.date.islamic.Date();_12=_12||"day";var _13=_10.getFullYear()-_11.getFullYear();var _14=1;switch(_12){case "weekday":var _15=Math.round(dojox.date.islamic.difference(_10,_11,"day"));var _16=parseInt(dojox.date.islamic.difference(_10,_11,"week"));var mod=_15%7;if(mod==0){_15=_16*5;}else{var adj=0;var _17=_11.getDay();var _18=_10.getDay();_16=parseInt(_15/7);mod=_15%7;var _19=new dojox.date.islamic.Date(_11);_19.setDate(_19.getDate()+(_16*7));var _1a=_19.getDay();if(_15>0){switch(true){case _17==5:adj=-1;break;case _17==6:adj=0;break;case _18==5:adj=-1;break;case _18==6:adj=-2;break;case (_1a+mod)>5:adj=-2;}}else{if(_15<0){switch(true){case _17==5:adj=0;break;case _17==6:adj=1;break;case _18==5:adj=2;break;case _18==6:adj=1;break;case (_1a+mod)<0:adj=2;}}}_15+=adj;_15-=(_16*2);}_14=_15;break;case "year":_14=_13;break;case "month":var _1b=(_10.toGregorian()>_11.toGregorian())?_10:_11;var _1c=(_10.toGregorian()>_11.toGregorian())?_11:_10;var _1d=_1b.getMonth();var _1e=_1c.getMonth();if(_13==0){_14=_1b.getMonth()-_1c.getMonth();}else{_14=12-_1e;_14+=_1d;var i=_1c.getFullYear()+1;var e=_1b.getFullYear();for(i;i<e;i++){_14+=12;}}if(_10.toGregorian()<_11.toGregorian()){_14=-_14;}break;case "week":_14=parseInt(dojox.date.islamic.difference(_10,_11,"day")/7);break;case "day":_14/=24;case "hour":_14/=60;case "minute":_14/=60;case "second":_14/=1000;case "millisecond":_14*=_10.toGregorian().getTime()-_11.toGregorian().getTime();}return Math.round(_14);};}