]> git.wh0rd.org - tt-rss.git/blame - lib/dojo/date.js
add dijit/dojo stuff; initial ui mockup
[tt-rss.git] / lib / dojo / date.js
CommitLineData
2f01fe57
AD
1/*
2 Copyright (c) 2004-2010, 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
7
8if(!dojo._hasResource["dojo.date"]){
9dojo._hasResource["dojo.date"]=true;
10dojo.provide("dojo.date");
11dojo.date.getDaysInMonth=function(_1){
12var _2=_1.getMonth();
13var _3=[31,28,31,30,31,30,31,31,30,31,30,31];
14if(_2==1&&dojo.date.isLeapYear(_1)){
15return 29;
16}
17return _3[_2];
18};
19dojo.date.isLeapYear=function(_4){
20var _5=_4.getFullYear();
21return !(_5%400)||(!(_5%4)&&!!(_5%100));
22};
23dojo.date.getTimezoneName=function(_6){
24var _7=_6.toString();
25var tz="";
26var _8;
27var _9=_7.indexOf("(");
28if(_9>-1){
29tz=_7.substring(++_9,_7.indexOf(")"));
30}else{
31var _a=/([A-Z\/]+) \d{4}$/;
32if((_8=_7.match(_a))){
33tz=_8[1];
34}else{
35_7=_6.toLocaleString();
36_a=/ ([A-Z\/]+)$/;
37if((_8=_7.match(_a))){
38tz=_8[1];
39}
40}
41}
42return (tz=="AM"||tz=="PM")?"":tz;
43};
44dojo.date.compare=function(_b,_c,_d){
45_b=new Date(+_b);
46_c=new Date(+(_c||new Date()));
47if(_d=="date"){
48_b.setHours(0,0,0,0);
49_c.setHours(0,0,0,0);
50}else{
51if(_d=="time"){
52_b.setFullYear(0,0,0);
53_c.setFullYear(0,0,0);
54}
55}
56if(_b>_c){
57return 1;
58}
59if(_b<_c){
60return -1;
61}
62return 0;
63};
64dojo.date.add=function(_e,_f,_10){
65var sum=new Date(+_e);
66var _11=false;
67var _12="Date";
68switch(_f){
69case "day":
70break;
71case "weekday":
72var _13,_14;
73var mod=_10%5;
74if(!mod){
75_13=(_10>0)?5:-5;
76_14=(_10>0)?((_10-5)/5):((_10+5)/5);
77}else{
78_13=mod;
79_14=parseInt(_10/5);
80}
81var _15=_e.getDay();
82var adj=0;
83if(_15==6&&_10>0){
84adj=1;
85}else{
86if(_15==0&&_10<0){
87adj=-1;
88}
89}
90var _16=_15+_13;
91if(_16==0||_16==6){
92adj=(_10>0)?2:-2;
93}
94_10=(7*_14)+_13+adj;
95break;
96case "year":
97_12="FullYear";
98_11=true;
99break;
100case "week":
101_10*=7;
102break;
103case "quarter":
104_10*=3;
105case "month":
106_11=true;
107_12="Month";
108break;
109default:
110_12="UTC"+_f.charAt(0).toUpperCase()+_f.substring(1)+"s";
111}
112if(_12){
113sum["set"+_12](sum["get"+_12]()+_10);
114}
115if(_11&&(sum.getDate()<_e.getDate())){
116sum.setDate(0);
117}
118return sum;
119};
120dojo.date.difference=function(_17,_18,_19){
121_18=_18||new Date();
122_19=_19||"day";
123var _1a=_18.getFullYear()-_17.getFullYear();
124var _1b=1;
125switch(_19){
126case "quarter":
127var m1=_17.getMonth();
128var m2=_18.getMonth();
129var q1=Math.floor(m1/3)+1;
130var q2=Math.floor(m2/3)+1;
131q2+=(_1a*4);
132_1b=q2-q1;
133break;
134case "weekday":
135var _1c=Math.round(dojo.date.difference(_17,_18,"day"));
136var _1d=parseInt(dojo.date.difference(_17,_18,"week"));
137var mod=_1c%7;
138if(mod==0){
139_1c=_1d*5;
140}else{
141var adj=0;
142var _1e=_17.getDay();
143var _1f=_18.getDay();
144_1d=parseInt(_1c/7);
145mod=_1c%7;
146var _20=new Date(_17);
147_20.setDate(_20.getDate()+(_1d*7));
148var _21=_20.getDay();
149if(_1c>0){
150switch(true){
151case _1e==6:
152adj=-1;
153break;
154case _1e==0:
155adj=0;
156break;
157case _1f==6:
158adj=-1;
159break;
160case _1f==0:
161adj=-2;
162break;
163case (_21+mod)>5:
164adj=-2;
165}
166}else{
167if(_1c<0){
168switch(true){
169case _1e==6:
170adj=0;
171break;
172case _1e==0:
173adj=1;
174break;
175case _1f==6:
176adj=2;
177break;
178case _1f==0:
179adj=1;
180break;
181case (_21+mod)<0:
182adj=2;
183}
184}
185}
186_1c+=adj;
187_1c-=(_1d*2);
188}
189_1b=_1c;
190break;
191case "year":
192_1b=_1a;
193break;
194case "month":
195_1b=(_18.getMonth()-_17.getMonth())+(_1a*12);
196break;
197case "week":
198_1b=parseInt(dojo.date.difference(_17,_18,"day")/7);
199break;
200case "day":
201_1b/=24;
202case "hour":
203_1b/=60;
204case "minute":
205_1b/=60;
206case "second":
207_1b/=1000;
208case "millisecond":
209_1b*=_18.getTime()-_17.getTime();
210}
211return Math.round(_1b);
212};
213}