Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F391426
date.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
20 KB
Subscribers
None
date.js
View Options
if
(
!
dojo
.
_hasResource
[
"tests.date"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"tests.date"
]
=
true
;
dojo
.
provide
(
"tests.date"
);
dojo
.
require
(
"dojo.date"
);
tests
.
register
(
"tests.date.util"
,
[
/* Informational Functions
**************************/
function
test_date_getDaysInMonth
(
t
){
// months other than February
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
0
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
2
,
1
)));
t
.
is
(
30
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
3
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
4
,
1
)));
t
.
is
(
30
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
5
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
6
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
7
,
1
)));
t
.
is
(
30
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
8
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
9
,
1
)));
t
.
is
(
30
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
10
,
1
)));
t
.
is
(
31
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
11
,
1
)));
// Februarys
t
.
is
(
28
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2006
,
1
,
1
)));
t
.
is
(
29
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2004
,
1
,
1
)));
t
.
is
(
29
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
2000
,
1
,
1
)));
t
.
is
(
28
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
1900
,
1
,
1
)));
t
.
is
(
28
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
1800
,
1
,
1
)));
t
.
is
(
28
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
1700
,
1
,
1
)));
t
.
is
(
29
,
dojo
.
date
.
getDaysInMonth
(
new
Date
(
1600
,
1
,
1
)));
},
function
test_date_isLeapYear
(
t
){
t
.
f
(
dojo
.
date
.
isLeapYear
(
new
Date
(
2006
,
0
,
1
)));
t
.
t
(
dojo
.
date
.
isLeapYear
(
new
Date
(
2004
,
0
,
1
)));
t
.
t
(
dojo
.
date
.
isLeapYear
(
new
Date
(
2000
,
0
,
1
)));
t
.
f
(
dojo
.
date
.
isLeapYear
(
new
Date
(
1900
,
0
,
1
)));
t
.
f
(
dojo
.
date
.
isLeapYear
(
new
Date
(
1800
,
0
,
1
)));
t
.
f
(
dojo
.
date
.
isLeapYear
(
new
Date
(
1700
,
0
,
1
)));
t
.
t
(
dojo
.
date
.
isLeapYear
(
new
Date
(
1600
,
0
,
1
)));
},
// The getTimezone function pulls from either the date's toString or
// toLocaleString method -- it's really just a string-processing
// function (assuming the Date obj passed in supporting both toString
// and toLocaleString) and as such can be tested for multiple browsers
// by manually settting up fake Date objects with the actual strings
// produced by various browser/OS combinations.
// FIXME: the function and tests are not localized.
function
test_date_getTimezoneName
(
t
){
// Create a fake Date object with toString and toLocaleString
// results manually set to simulate tests for multiple browsers
function
fakeDate
(
str
,
strLocale
){
this
.
str
=
str
||
''
;
this
.
strLocale
=
strLocale
||
''
;
this
.
toString
=
function
()
{
return
this
.
str
;
};
this
.
toLocaleString
=
function
(){
return
this
.
strLocale
;
};
}
var
dt
=
new
fakeDate
();
// FF 1.5 Ubuntu Linux (Breezy)
dt
.
str
=
'Sun Sep 17 2006 22:25:51 GMT-0500 (CDT)'
;
dt
.
strLocale
=
'Sun 17 Sep 2006 10:25:51 PM CDT'
;
t
.
is
(
'CDT'
,
dojo
.
date
.
getTimezoneName
(
dt
));
// Safari 2.0 Mac OS X 10.4
dt
.
str
=
'Sun Sep 17 2006 22:55:01 GMT-0500'
;
dt
.
strLocale
=
'September 17, 2006 10:55:01 PM CDT'
;
t
.
is
(
'CDT'
,
dojo
.
date
.
getTimezoneName
(
dt
));
// FF 1.5 Mac OS X 10.4
dt
.
str
=
'Sun Sep 17 2006 22:57:18 GMT-0500 (CDT)'
;
dt
.
strLocale
=
'Sun Sep 17 22:57:18 2006'
;
t
.
is
(
'CDT'
,
dojo
.
date
.
getTimezoneName
(
dt
));
// Opera 9 Mac OS X 10.4 -- no TZ data expect empty string return
dt
.
str
=
'Sun, 17 Sep 2006 22:58:06 GMT-0500'
;
dt
.
strLocale
=
'Sunday September 17, 22:58:06 GMT-0500 2006'
;
t
.
is
(
''
,
dojo
.
date
.
getTimezoneName
(
dt
));
// IE 6 Windows XP
dt
.
str
=
'Mon Sep 18 11:21:07 CDT 2006'
;
dt
.
strLocale
=
'Monday, September 18, 2006 11:21:07 AM'
;
t
.
is
(
'CDT'
,
dojo
.
date
.
getTimezoneName
(
dt
));
// Opera 9 Ubuntu Linux (Breezy) -- no TZ data expect empty string return
dt
.
str
=
'Mon, 18 Sep 2006 13:30:32 GMT-0500'
;
dt
.
strLocale
=
'Monday September 18, 13:30:32 GMT-0500 2006'
;
t
.
is
(
''
,
dojo
.
date
.
getTimezoneName
(
dt
));
// IE 5.5 Windows 2000
dt
.
str
=
'Mon Sep 18 13:49:22 CDT 2006'
;
dt
.
strLocale
=
'Monday, September 18, 2006 1:49:22 PM'
;
t
.
is
(
'CDT'
,
dojo
.
date
.
getTimezoneName
(
dt
));
}
]
);
tests
.
register
(
"tests.date.math"
,
[
function
test_date_compare
(
t
){
var
d1
=
new
Date
();
d1
.
setHours
(
0
);
var
d2
=
new
Date
();
d2
.
setFullYear
(
2005
);
d2
.
setHours
(
12
);
t
.
is
(
0
,
dojo
.
date
.
compare
(
d1
,
d1
));
t
.
is
(
1
,
dojo
.
date
.
compare
(
d1
,
d2
,
"date"
));
t
.
is
(
-
1
,
dojo
.
date
.
compare
(
d2
,
d1
,
"date"
));
t
.
is
(
-
1
,
dojo
.
date
.
compare
(
d1
,
d2
,
"time"
));
t
.
is
(
1
,
dojo
.
date
.
compare
(
d1
,
d2
,
"datetime"
));
},
function
test_date_add
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"year"
;
dtA
=
new
Date
(
2005
,
11
,
27
);
dtB
=
new
Date
(
2006
,
11
,
27
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2005
,
11
,
27
);
dtB
=
new
Date
(
2004
,
11
,
27
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
));
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2001
,
1
,
28
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2005
,
1
,
28
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
5
));
dtA
=
new
Date
(
1900
,
11
,
31
);
dtB
=
new
Date
(
1930
,
11
,
31
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
30
));
dtA
=
new
Date
(
1995
,
11
,
31
);
dtB
=
new
Date
(
2030
,
11
,
31
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
35
));
interv
=
"quarter"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
2000
,
3
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2000
,
7
,
29
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
2
));
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2001
,
1
,
28
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
4
));
interv
=
"month"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
2000
,
1
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
0
,
31
);
dtB
=
new
Date
(
2000
,
1
,
29
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2001
,
1
,
28
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
12
));
interv
=
"week"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
2000
,
0
,
8
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
var
interv
=
"day"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
2000
,
0
,
2
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2001
,
0
,
1
);
dtB
=
new
Date
(
2002
,
0
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
365
));
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
2001
,
0
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
366
));
dtA
=
new
Date
(
2000
,
1
,
28
);
dtB
=
new
Date
(
2000
,
1
,
29
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2001
,
1
,
28
);
dtB
=
new
Date
(
2001
,
2
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
2
,
1
);
dtB
=
new
Date
(
2000
,
1
,
29
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
));
dtA
=
new
Date
(
2001
,
2
,
1
);
dtB
=
new
Date
(
2001
,
1
,
28
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
));
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
new
Date
(
1999
,
11
,
31
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
));
interv
=
"weekday"
;
// Sat, Jan 1
dtA
=
new
Date
(
2000
,
0
,
1
);
// Should be Mon, Jan 3
dtB
=
new
Date
(
2000
,
0
,
3
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Mon, Jan 3
dtB
=
new
Date
(
2000
,
0
,
3
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Fri, Jan 7
dtB
=
new
Date
(
2000
,
0
,
7
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
5
));
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Mon, Jan 10
dtB
=
new
Date
(
2000
,
0
,
10
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
6
));
// Mon, Jan 3
dtA
=
new
Date
(
2000
,
0
,
3
);
// Should be Mon, Jan 17
dtB
=
new
Date
(
2000
,
0
,
17
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
10
));
// Sat, Jan 8
dtA
=
new
Date
(
2000
,
0
,
8
);
// Should be Mon, Jan 3
dtB
=
new
Date
(
2000
,
0
,
3
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
5
));
// Sun, Jan 9
dtA
=
new
Date
(
2000
,
0
,
9
);
// Should be Wed, Jan 5
dtB
=
new
Date
(
2000
,
0
,
5
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
3
));
// Sun, Jan 23
dtA
=
new
Date
(
2000
,
0
,
23
);
// Should be Fri, Jan 7
dtB
=
new
Date
(
2000
,
0
,
7
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
-
11
));
interv
=
"hour"
;
dtA
=
new
Date
(
2000
,
0
,
1
,
11
);
dtB
=
new
Date
(
2000
,
0
,
1
,
12
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2001
,
9
,
28
,
0
);
dtB
=
new
Date
(
2001
,
9
,
28
,
1
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2001
,
9
,
28
,
23
);
dtB
=
new
Date
(
2001
,
9
,
29
,
0
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2001
,
11
,
31
,
23
);
dtB
=
new
Date
(
2002
,
0
,
1
,
0
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
interv
=
"minute"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
11
,
27
,
12
,
02
);
dtB
=
new
Date
(
2000
,
11
,
27
,
13
,
02
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
60
));
interv
=
"second"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
,
59
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
,
0
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
1
));
dtA
=
new
Date
(
2000
,
11
,
27
,
8
,
10
,
59
);
dtB
=
new
Date
(
2000
,
11
,
27
,
8
,
11
,
59
);
t
.
is
(
dtB
,
dojo
.
date
.
add
(
dtA
,
interv
,
60
));
// Test environment JS Date doesn't support millisec?
//interv = "millisecond";
//
//dtA = new Date(2000, 11, 31, 23, 59, 59, 999);
//dtB = new Date(2001, 0, 1, 0, 0, 0, 0);
//t.is(dtB, dojo.date.add(dtA, interv, 1));
//
//dtA = new Date(2000, 11, 27, 8, 10, 53, 2);
//dtB = new Date(2000, 11, 27, 8, 10, 54, 2);
//t.is(dtB, dojo.date.add(dtA, interv, 1000));
},
function
test_date_diff
(
t
){
var
dtA
=
null
;
// First date to compare
var
dtB
=
null
;
// Second date to compare
var
interv
=
''
;
// Interval to compare on (e.g., year, month)
interv
=
"year"
;
dtA
=
new
Date
(
2005
,
11
,
27
);
dtB
=
new
Date
(
2006
,
11
,
27
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
31
);
dtB
=
new
Date
(
2001
,
0
,
1
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"quarter"
;
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2001
,
2
,
1
);
t
.
is
(
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
1
);
dtB
=
new
Date
(
2001
,
0
,
1
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"month"
;
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2001
,
2
,
1
);
t
.
is
(
13
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
1
);
dtB
=
new
Date
(
2001
,
0
,
1
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"week"
;
dtA
=
new
Date
(
2000
,
1
,
1
);
dtB
=
new
Date
(
2000
,
1
,
8
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
1
,
28
);
dtB
=
new
Date
(
2000
,
2
,
6
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
2
,
6
);
dtB
=
new
Date
(
2000
,
1
,
28
);
t
.
is
(
-
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"day"
;
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
new
Date
(
2000
,
2
,
1
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
31
);
dtB
=
new
Date
(
2001
,
0
,
1
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
// DST leap -- check for rounding err
// This is dependent on US calendar, but
// shouldn't break in other locales
dtA
=
new
Date
(
2005
,
3
,
3
);
dtB
=
new
Date
(
2005
,
3
,
4
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"weekday"
;
dtA
=
new
Date
(
2006
,
7
,
3
);
dtB
=
new
Date
(
2006
,
7
,
11
);
t
.
is
(
6
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
// Positive diffs
dtA
=
new
Date
(
2006
,
7
,
4
);
dtB
=
new
Date
(
2006
,
7
,
11
);
t
.
is
(
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
5
);
dtB
=
new
Date
(
2006
,
7
,
11
);
t
.
is
(
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
6
);
dtB
=
new
Date
(
2006
,
7
,
11
);
t
.
is
(
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
7
);
dtB
=
new
Date
(
2006
,
7
,
11
);
t
.
is
(
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
7
);
dtB
=
new
Date
(
2006
,
7
,
13
);
t
.
is
(
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
7
);
dtB
=
new
Date
(
2006
,
7
,
14
);
t
.
is
(
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
7
);
dtB
=
new
Date
(
2006
,
7
,
15
);
t
.
is
(
6
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
7
);
dtB
=
new
Date
(
2006
,
7
,
28
);
t
.
is
(
15
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
2
,
2
);
dtB
=
new
Date
(
2006
,
2
,
28
);
t
.
is
(
18
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
// Negative diffs
dtA
=
new
Date
(
2006
,
7
,
11
);
dtB
=
new
Date
(
2006
,
7
,
4
);
t
.
is
(
-
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
11
);
dtB
=
new
Date
(
2006
,
7
,
5
);
t
.
is
(
-
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
11
);
dtB
=
new
Date
(
2006
,
7
,
6
);
t
.
is
(
-
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
11
);
dtB
=
new
Date
(
2006
,
7
,
7
);
t
.
is
(
-
4
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
13
);
dtB
=
new
Date
(
2006
,
7
,
7
);
t
.
is
(
-
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
14
);
dtB
=
new
Date
(
2006
,
7
,
7
);
t
.
is
(
-
5
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
15
);
dtB
=
new
Date
(
2006
,
7
,
7
);
t
.
is
(
-
6
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
7
,
28
);
dtB
=
new
Date
(
2006
,
7
,
7
);
t
.
is
(
-
15
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2006
,
2
,
28
);
dtB
=
new
Date
(
2006
,
2
,
2
);
t
.
is
(
-
18
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
// Two days on the same weekend -- no weekday diff
dtA
=
new
Date
(
2006
,
7
,
5
);
dtB
=
new
Date
(
2006
,
7
,
6
);
t
.
is
(
0
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"hour"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
31
,
12
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
);
t
.
is
(
12
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"minute"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
1
,
28
,
23
,
59
);
dtB
=
new
Date
(
2000
,
1
,
29
,
0
,
0
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"second"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
,
59
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
,
0
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
interv
=
"millisecond"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
,
59
,
999
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
,
0
,
0
);
t
.
is
(
1
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
,
59
,
0
);
dtB
=
new
Date
(
2001
,
0
,
1
,
0
,
0
,
0
,
0
);
t
.
is
(
1000
,
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
));
},
function
test_date_add_diff_year
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"year"
;
dtA
=
new
Date
(
2005
,
11
,
27
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2005
,
11
,
27
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
1
);
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
5
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
5
);
dtA
=
new
Date
(
1900
,
11
,
31
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
30
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
30
);
dtA
=
new
Date
(
1995
,
11
,
31
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
35
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
35
);
},
function
test_date_add_diff_quarter
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"quarter"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
2
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
2
);
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
4
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
4
);
},
function
test_date_add_diff_month
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"month"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
0
,
31
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
1
,
29
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
12
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
12
);
},
function
test_date_add_diff_week
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"week"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
},
function
test_date_add_diff_day
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
var
interv
=
"day"
;
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2001
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
365
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
365
);
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
366
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
366
);
dtA
=
new
Date
(
2000
,
1
,
28
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2001
,
1
,
28
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
2
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
1
);
dtA
=
new
Date
(
2001
,
2
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
1
);
dtA
=
new
Date
(
2000
,
0
,
1
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
1
);
},
function
test_date_add_diff_weekday
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"weekday"
;
// Sat, Jan 1
dtA
=
new
Date
(
2000
,
0
,
1
);
// Should be Mon, Jan 3
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Mon, Jan 3
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Fri, Jan 7
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
5
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
5
);
// Sun, Jan 2
dtA
=
new
Date
(
2000
,
0
,
2
);
// Should be Mon, Jan 10
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
6
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
6
);
// Mon, Jan 3
dtA
=
new
Date
(
2000
,
0
,
3
);
// Should be Mon, Jan 17
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
10
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
10
);
// Sat, Jan 8
dtA
=
new
Date
(
2000
,
0
,
8
);
// Should be Mon, Jan 3
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
5
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
5
);
// Sun, Jan 9
dtA
=
new
Date
(
2000
,
0
,
9
);
// Should be Wed, Jan 5
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
3
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
3
);
// Sun, Jan 23
dtA
=
new
Date
(
2000
,
0
,
23
);
// Should be Fri, Jan 7
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
-
11
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
-
11
);
},
function
test_date_add_diff_hour
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"hour"
;
dtA
=
new
Date
(
2000
,
0
,
1
,
11
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2001
,
9
,
28
,
0
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2001
,
9
,
28
,
23
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2001
,
11
,
31
,
23
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
},
function
test_date_add_diff_minute
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
interv
=
"minute"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
11
,
27
,
12
,
2
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
60
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
60
);
},
function
test_date_add_diff_second
(
t
){
var
interv
=
''
;
// Interval (e.g., year, month)
var
dtA
=
null
;
// Date to increment
var
dtB
=
null
;
// Expected result date
console
.
debug
(
"second"
);
interv
=
"second"
;
dtA
=
new
Date
(
2000
,
11
,
31
,
23
,
59
,
59
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
1
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
1
);
dtA
=
new
Date
(
2000
,
11
,
27
,
8
,
10
,
59
);
dtB
=
dojo
.
date
.
add
(
dtA
,
interv
,
60
);
t
.
is
(
dojo
.
date
.
difference
(
dtA
,
dtB
,
interv
),
60
);
// Test environment JS Date doesn't support millisec?
//interv = "millisecond";
//
//dtA = new Date(2000, 11, 31, 23, 59, 59, 999);
//dtB = dojo.date.add(dtA, interv, 1);
//t.is(dojo.date.difference(dtA, dtB, interv), 1);
//
//dtA = new Date(2000, 11, 27, 8, 10, 53, 2);
//dtB = dojo.date.add(dtA, interv, 1000);
//t.is(dojo.date.difference(dtA, dtB, interv), 1000);
}
]
);
dojo
.
require
(
"tests.date.locale"
);
dojo
.
require
(
"tests.date.stamp"
);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 20:24 (1 d, 3 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25221
Default Alt Text
date.js (20 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment