Project

General

Profile

Download (3.37 KB) Statistics
| Branch: | Revision:
1
/*
2
	Copyright (c) 2004-2008, 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

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