summaryrefslogtreecommitdiff
path: root/lib/dojo/date.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/date.js')
-rw-r--r--lib/dojo/date.js213
1 files changed, 213 insertions, 0 deletions
diff --git a/lib/dojo/date.js b/lib/dojo/date.js
new file mode 100644
index 000000000..dc51853f3
--- /dev/null
+++ b/lib/dojo/date.js
@@ -0,0 +1,213 @@
+/*
+ Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojo.date"]){
+dojo._hasResource["dojo.date"]=true;
+dojo.provide("dojo.date");
+dojo.date.getDaysInMonth=function(_1){
+var _2=_1.getMonth();
+var _3=[31,28,31,30,31,30,31,31,30,31,30,31];
+if(_2==1&&dojo.date.isLeapYear(_1)){
+return 29;
+}
+return _3[_2];
+};
+dojo.date.isLeapYear=function(_4){
+var _5=_4.getFullYear();
+return !(_5%400)||(!(_5%4)&&!!(_5%100));
+};
+dojo.date.getTimezoneName=function(_6){
+var _7=_6.toString();
+var tz="";
+var _8;
+var _9=_7.indexOf("(");
+if(_9>-1){
+tz=_7.substring(++_9,_7.indexOf(")"));
+}else{
+var _a=/([A-Z\/]+) \d{4}$/;
+if((_8=_7.match(_a))){
+tz=_8[1];
+}else{
+_7=_6.toLocaleString();
+_a=/ ([A-Z\/]+)$/;
+if((_8=_7.match(_a))){
+tz=_8[1];
+}
+}
+}
+return (tz=="AM"||tz=="PM")?"":tz;
+};
+dojo.date.compare=function(_b,_c,_d){
+_b=new Date(+_b);
+_c=new Date(+(_c||new Date()));
+if(_d=="date"){
+_b.setHours(0,0,0,0);
+_c.setHours(0,0,0,0);
+}else{
+if(_d=="time"){
+_b.setFullYear(0,0,0);
+_c.setFullYear(0,0,0);
+}
+}
+if(_b>_c){
+return 1;
+}
+if(_b<_c){
+return -1;
+}
+return 0;
+};
+dojo.date.add=function(_e,_f,_10){
+var sum=new Date(+_e);
+var _11=false;
+var _12="Date";
+switch(_f){
+case "day":
+break;
+case "weekday":
+var _13,_14;
+var mod=_10%5;
+if(!mod){
+_13=(_10>0)?5:-5;
+_14=(_10>0)?((_10-5)/5):((_10+5)/5);
+}else{
+_13=mod;
+_14=parseInt(_10/5);
+}
+var _15=_e.getDay();
+var adj=0;
+if(_15==6&&_10>0){
+adj=1;
+}else{
+if(_15==0&&_10<0){
+adj=-1;
+}
+}
+var _16=_15+_13;
+if(_16==0||_16==6){
+adj=(_10>0)?2:-2;
+}
+_10=(7*_14)+_13+adj;
+break;
+case "year":
+_12="FullYear";
+_11=true;
+break;
+case "week":
+_10*=7;
+break;
+case "quarter":
+_10*=3;
+case "month":
+_11=true;
+_12="Month";
+break;
+default:
+_12="UTC"+_f.charAt(0).toUpperCase()+_f.substring(1)+"s";
+}
+if(_12){
+sum["set"+_12](sum["get"+_12]()+_10);
+}
+if(_11&&(sum.getDate()<_e.getDate())){
+sum.setDate(0);
+}
+return sum;
+};
+dojo.date.difference=function(_17,_18,_19){
+_18=_18||new Date();
+_19=_19||"day";
+var _1a=_18.getFullYear()-_17.getFullYear();
+var _1b=1;
+switch(_19){
+case "quarter":
+var m1=_17.getMonth();
+var m2=_18.getMonth();
+var q1=Math.floor(m1/3)+1;
+var q2=Math.floor(m2/3)+1;
+q2+=(_1a*4);
+_1b=q2-q1;
+break;
+case "weekday":
+var _1c=Math.round(dojo.date.difference(_17,_18,"day"));
+var _1d=parseInt(dojo.date.difference(_17,_18,"week"));
+var mod=_1c%7;
+if(mod==0){
+_1c=_1d*5;
+}else{
+var adj=0;
+var _1e=_17.getDay();
+var _1f=_18.getDay();
+_1d=parseInt(_1c/7);
+mod=_1c%7;
+var _20=new Date(_17);
+_20.setDate(_20.getDate()+(_1d*7));
+var _21=_20.getDay();
+if(_1c>0){
+switch(true){
+case _1e==6:
+adj=-1;
+break;
+case _1e==0:
+adj=0;
+break;
+case _1f==6:
+adj=-1;
+break;
+case _1f==0:
+adj=-2;
+break;
+case (_21+mod)>5:
+adj=-2;
+}
+}else{
+if(_1c<0){
+switch(true){
+case _1e==6:
+adj=0;
+break;
+case _1e==0:
+adj=1;
+break;
+case _1f==6:
+adj=2;
+break;
+case _1f==0:
+adj=1;
+break;
+case (_21+mod)<0:
+adj=2;
+}
+}
+}
+_1c+=adj;
+_1c-=(_1d*2);
+}
+_1b=_1c;
+break;
+case "year":
+_1b=_1a;
+break;
+case "month":
+_1b=(_18.getMonth()-_17.getMonth())+(_1a*12);
+break;
+case "week":
+_1b=parseInt(dojo.date.difference(_17,_18,"day")/7);
+break;
+case "day":
+_1b/=24;
+case "hour":
+_1b/=60;
+case "minute":
+_1b/=60;
+case "second":
+_1b/=1000;
+case "millisecond":
+_1b*=_18.getTime()-_17.getTime();
+}
+return Math.round(_1b);
+};
+}