OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Dart test program for Date. | 5 // Dart test program for DateTime. |
6 | 6 |
7 class DateTest { | 7 class DateTest { |
8 // Tests if the time moves eventually forward. | 8 // Tests if the time moves eventually forward. |
9 static void testNow() { | 9 static void testNow() { |
10 var t1 = new Date.now(); | 10 var t1 = new DateTime.now(); |
11 bool timeMovedForward = false; | 11 bool timeMovedForward = false; |
12 for (int i = 0; i < 1000000; i++) { | 12 for (int i = 0; i < 1000000; i++) { |
13 var t2 = new Date.now(); | 13 var t2 = new DateTime.now(); |
14 if (t1.millisecondsSinceEpoch < t2.millisecondsSinceEpoch) { | 14 if (t1.millisecondsSinceEpoch < t2.millisecondsSinceEpoch) { |
15 timeMovedForward = true; | 15 timeMovedForward = true; |
16 break; | 16 break; |
17 } | 17 } |
18 } | 18 } |
19 Expect.equals(true, timeMovedForward); | 19 Expect.equals(true, timeMovedForward); |
20 Expect.isFalse(t1.isUtc); | 20 Expect.isFalse(t1.isUtc); |
21 } | 21 } |
22 | 22 |
23 static void testValue() { | 23 static void testValue() { |
24 var dt1 = new Date.now(); | 24 var dt1 = new DateTime.now(); |
25 var millisecondsSinceEpoch = dt1.millisecondsSinceEpoch; | 25 var millisecondsSinceEpoch = dt1.millisecondsSinceEpoch; |
26 var dt2 = new Date.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); | 26 var dt2 = new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch); |
27 Expect.equals(millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); | 27 Expect.equals(millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
28 } | 28 } |
29 | 29 |
30 static void testFarAwayDates() { | 30 static void testFarAwayDates() { |
31 Date dt = | 31 DateTime dt = |
32 new Date.fromMillisecondsSinceEpoch(1000000000000001, isUtc: true); | 32 new DateTime.fromMillisecondsSinceEpoch(1000000000000001, isUtc: true); |
33 Expect.equals(33658, dt.year); | 33 Expect.equals(33658, dt.year); |
34 Expect.equals(9, dt.month); | 34 Expect.equals(9, dt.month); |
35 Expect.equals(27, dt.day); | 35 Expect.equals(27, dt.day); |
36 Expect.equals(1, dt.hour); | 36 Expect.equals(1, dt.hour); |
37 Expect.equals(46, dt.minute); | 37 Expect.equals(46, dt.minute); |
38 Expect.equals(40, dt.second); | 38 Expect.equals(40, dt.second); |
39 Expect.equals(1, dt.millisecond); | 39 Expect.equals(1, dt.millisecond); |
40 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001, isUtc: true); | 40 dt = new DateTime.fromMillisecondsSinceEpoch(-1000000000000001, isUtc: true)
; |
41 Expect.equals(-29719, dt.year); | 41 Expect.equals(-29719, dt.year); |
42 Expect.equals(4, dt.month); | 42 Expect.equals(4, dt.month); |
43 Expect.equals(5, dt.day); | 43 Expect.equals(5, dt.day); |
44 Expect.equals(22, dt.hour); | 44 Expect.equals(22, dt.hour); |
45 Expect.equals(13, dt.minute); | 45 Expect.equals(13, dt.minute); |
46 Expect.equals(19, dt.second); | 46 Expect.equals(19, dt.second); |
47 Expect.equals(999, dt.millisecond); | 47 Expect.equals(999, dt.millisecond); |
48 // Same with local zone. | 48 // Same with local zone. |
49 dt = new Date.fromMillisecondsSinceEpoch(1000000000000001); | 49 dt = new DateTime.fromMillisecondsSinceEpoch(1000000000000001); |
50 Expect.equals(33658, dt.year); | 50 Expect.equals(33658, dt.year); |
51 Expect.equals(9, dt.month); | 51 Expect.equals(9, dt.month); |
52 Expect.equals(true, dt.day == 27 || dt.day == 26); | 52 Expect.equals(true, dt.day == 27 || dt.day == 26); |
53 // Not much we can test for local hour. | 53 // Not much we can test for local hour. |
54 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); | 54 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); |
55 // Timezones can have offsets down to 15 minute. | 55 // Timezones can have offsets down to 15 minute. |
56 Expect.equals(true, dt.minute % 15 == 46 % 15); | 56 Expect.equals(true, dt.minute % 15 == 46 % 15); |
57 Expect.equals(40, dt.second); | 57 Expect.equals(40, dt.second); |
58 Expect.equals(1, dt.millisecond); | 58 Expect.equals(1, dt.millisecond); |
59 dt = new Date.fromMillisecondsSinceEpoch(-1000000000000001); | 59 dt = new DateTime.fromMillisecondsSinceEpoch(-1000000000000001); |
60 Expect.equals(-29719, dt.year); | 60 Expect.equals(-29719, dt.year); |
61 Expect.equals(4, dt.month); | 61 Expect.equals(4, dt.month); |
62 Expect.equals(true, 5 == dt.day || 6 == dt.day); | 62 Expect.equals(true, 5 == dt.day || 6 == dt.day); |
63 // Not much we can test for local hour. | 63 // Not much we can test for local hour. |
64 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); | 64 Expect.equals(true, dt.hour >= 0 && dt.hour < 24); |
65 // Timezones can have offsets down to 15 minute. | 65 // Timezones can have offsets down to 15 minute. |
66 Expect.equals(true, dt.minute % 15 == 13); | 66 Expect.equals(true, dt.minute % 15 == 13); |
67 Expect.equals(19, dt.second); | 67 Expect.equals(19, dt.second); |
68 Expect.equals(999, dt.millisecond); | 68 Expect.equals(999, dt.millisecond); |
69 } | 69 } |
70 | 70 |
71 static void testEquivalentYears() { | 71 static void testEquivalentYears() { |
72 // All hardcoded values come from V8. This means that the values are not | 72 // All hardcoded values come from V8. This means that the values are not |
73 // necessarily correct (see limitations of Date object in | 73 // necessarily correct (see limitations of DateTime object in |
74 // EcmaScript 15.9.1 and in particular 15.9.1.8/9). | 74 // EcmaScript 15.9.1 and in particular 15.9.1.8/9). |
75 Date dt = new Date.fromMillisecondsSinceEpoch(-31485600000, isUtc: true); | 75 DateTime dt = new DateTime.fromMillisecondsSinceEpoch(-31485600000, isUtc: t
rue); |
76 Expect.equals(1969, dt.year); | 76 Expect.equals(1969, dt.year); |
77 Expect.equals(1, dt.month); | 77 Expect.equals(1, dt.month); |
78 Expect.equals(1, dt.day); | 78 Expect.equals(1, dt.day); |
79 Expect.equals(14, dt.hour); | 79 Expect.equals(14, dt.hour); |
80 Expect.equals(0, dt.minute); | 80 Expect.equals(0, dt.minute); |
81 Expect.equals(0, dt.second); | 81 Expect.equals(0, dt.second); |
82 Expect.equals(0, dt.millisecond); | 82 Expect.equals(0, dt.millisecond); |
83 dt = new Date.fromMillisecondsSinceEpoch(-63108000000, isUtc: true); | 83 dt = new DateTime.fromMillisecondsSinceEpoch(-63108000000, isUtc: true); |
84 Expect.equals(1968, dt.year); | 84 Expect.equals(1968, dt.year); |
85 Expect.equals(1, dt.month); | 85 Expect.equals(1, dt.month); |
86 Expect.equals(1, dt.day); | 86 Expect.equals(1, dt.day); |
87 Expect.equals(14, dt.hour); | 87 Expect.equals(14, dt.hour); |
88 Expect.equals(0, dt.minute); | 88 Expect.equals(0, dt.minute); |
89 Expect.equals(0, dt.second); | 89 Expect.equals(0, dt.second); |
90 Expect.equals(0, dt.millisecond); | 90 Expect.equals(0, dt.millisecond); |
91 dt = new Date.fromMillisecondsSinceEpoch(-94644000000, isUtc: true); | 91 dt = new DateTime.fromMillisecondsSinceEpoch(-94644000000, isUtc: true); |
92 Expect.equals(1967, dt.year); | 92 Expect.equals(1967, dt.year); |
93 Expect.equals(1, dt.month); | 93 Expect.equals(1, dt.month); |
94 Expect.equals(1, dt.day); | 94 Expect.equals(1, dt.day); |
95 Expect.equals(14, dt.hour); | 95 Expect.equals(14, dt.hour); |
96 Expect.equals(0, dt.minute); | 96 Expect.equals(0, dt.minute); |
97 Expect.equals(0, dt.second); | 97 Expect.equals(0, dt.second); |
98 Expect.equals(0, dt.millisecond); | 98 Expect.equals(0, dt.millisecond); |
99 dt = new Date.fromMillisecondsSinceEpoch(-126180000000, isUtc: true); | 99 dt = new DateTime.fromMillisecondsSinceEpoch(-126180000000, isUtc: true); |
100 Expect.equals(1966, dt.year); | 100 Expect.equals(1966, dt.year); |
101 Expect.equals(1, dt.month); | 101 Expect.equals(1, dt.month); |
102 Expect.equals(1, dt.day); | 102 Expect.equals(1, dt.day); |
103 Expect.equals(14, dt.hour); | 103 Expect.equals(14, dt.hour); |
104 Expect.equals(0, dt.minute); | 104 Expect.equals(0, dt.minute); |
105 Expect.equals(0, dt.second); | 105 Expect.equals(0, dt.second); |
106 Expect.equals(0, dt.millisecond); | 106 Expect.equals(0, dt.millisecond); |
107 dt = new Date.fromMillisecondsSinceEpoch(-157716000000, isUtc: true); | 107 dt = new DateTime.fromMillisecondsSinceEpoch(-157716000000, isUtc: true); |
108 Expect.equals(1965, dt.year); | 108 Expect.equals(1965, dt.year); |
109 Expect.equals(1, dt.month); | 109 Expect.equals(1, dt.month); |
110 Expect.equals(1, dt.day); | 110 Expect.equals(1, dt.day); |
111 Expect.equals(14, dt.hour); | 111 Expect.equals(14, dt.hour); |
112 Expect.equals(0, dt.minute); | 112 Expect.equals(0, dt.minute); |
113 Expect.equals(0, dt.second); | 113 Expect.equals(0, dt.second); |
114 Expect.equals(0, dt.millisecond); | 114 Expect.equals(0, dt.millisecond); |
115 dt = new Date.fromMillisecondsSinceEpoch(-2177402400000, isUtc: true); | 115 dt = new DateTime.fromMillisecondsSinceEpoch(-2177402400000, isUtc: true); |
116 Expect.equals(1901, dt.year); | 116 Expect.equals(1901, dt.year); |
117 Expect.equals(1, dt.month); | 117 Expect.equals(1, dt.month); |
118 Expect.equals(1, dt.day); | 118 Expect.equals(1, dt.day); |
119 Expect.equals(14, dt.hour); | 119 Expect.equals(14, dt.hour); |
120 Expect.equals(0, dt.minute); | 120 Expect.equals(0, dt.minute); |
121 Expect.equals(0, dt.second); | 121 Expect.equals(0, dt.second); |
122 Expect.equals(0, dt.millisecond); | 122 Expect.equals(0, dt.millisecond); |
123 dt = new Date.fromMillisecondsSinceEpoch(-5333076000000, isUtc: true); | 123 dt = new DateTime.fromMillisecondsSinceEpoch(-5333076000000, isUtc: true); |
124 Expect.equals(1801, dt.year); | 124 Expect.equals(1801, dt.year); |
125 Expect.equals(1, dt.month); | 125 Expect.equals(1, dt.month); |
126 Expect.equals(1, dt.day); | 126 Expect.equals(1, dt.day); |
127 Expect.equals(14, dt.hour); | 127 Expect.equals(14, dt.hour); |
128 Expect.equals(0, dt.minute); | 128 Expect.equals(0, dt.minute); |
129 Expect.equals(0, dt.second); | 129 Expect.equals(0, dt.second); |
130 Expect.equals(0, dt.millisecond); | 130 Expect.equals(0, dt.millisecond); |
131 dt = new Date.fromMillisecondsSinceEpoch(-8520285600000, isUtc: true); | 131 dt = new DateTime.fromMillisecondsSinceEpoch(-8520285600000, isUtc: true); |
132 Expect.equals(1700, dt.year); | 132 Expect.equals(1700, dt.year); |
133 Expect.equals(1, dt.month); | 133 Expect.equals(1, dt.month); |
134 Expect.equals(1, dt.day); | 134 Expect.equals(1, dt.day); |
135 Expect.equals(14, dt.hour); | 135 Expect.equals(14, dt.hour); |
136 Expect.equals(0, dt.minute); | 136 Expect.equals(0, dt.minute); |
137 Expect.equals(0, dt.second); | 137 Expect.equals(0, dt.second); |
138 Expect.equals(0, dt.millisecond); | 138 Expect.equals(0, dt.millisecond); |
139 dt = new Date.fromMillisecondsSinceEpoch(-14831719200000, isUtc: true); | 139 dt = new DateTime.fromMillisecondsSinceEpoch(-14831719200000, isUtc: true); |
140 Expect.equals(1500, dt.year); | 140 Expect.equals(1500, dt.year); |
141 Expect.equals(1, dt.month); | 141 Expect.equals(1, dt.month); |
142 Expect.equals(1, dt.day); | 142 Expect.equals(1, dt.day); |
143 Expect.equals(14, dt.hour); | 143 Expect.equals(14, dt.hour); |
144 Expect.equals(0, dt.minute); | 144 Expect.equals(0, dt.minute); |
145 Expect.equals(0, dt.second); | 145 Expect.equals(0, dt.second); |
146 Expect.equals(0, dt.millisecond); | 146 Expect.equals(0, dt.millisecond); |
147 dt = new Date.fromMillisecondsSinceEpoch(-59011408800000, isUtc: true); | 147 dt = new DateTime.fromMillisecondsSinceEpoch(-59011408800000, isUtc: true); |
148 Expect.equals(100, dt.year); | 148 Expect.equals(100, dt.year); |
149 Expect.equals(1, dt.month); | 149 Expect.equals(1, dt.month); |
150 Expect.equals(1, dt.day); | 150 Expect.equals(1, dt.day); |
151 Expect.equals(14, dt.hour); | 151 Expect.equals(14, dt.hour); |
152 Expect.equals(0, dt.minute); | 152 Expect.equals(0, dt.minute); |
153 Expect.equals(0, dt.second); | 153 Expect.equals(0, dt.second); |
154 Expect.equals(0, dt.millisecond); | 154 Expect.equals(0, dt.millisecond); |
155 dt = new Date.fromMillisecondsSinceEpoch(-62011408800000, isUtc: true); | 155 dt = new DateTime.fromMillisecondsSinceEpoch(-62011408800000, isUtc: true); |
156 Expect.equals(4, dt.year); | 156 Expect.equals(4, dt.year); |
157 Expect.equals(12, dt.month); | 157 Expect.equals(12, dt.month); |
158 Expect.equals(8, dt.day); | 158 Expect.equals(8, dt.day); |
159 Expect.equals(8, dt.hour); | 159 Expect.equals(8, dt.hour); |
160 Expect.equals(40, dt.minute); | 160 Expect.equals(40, dt.minute); |
161 Expect.equals(0, dt.second); | 161 Expect.equals(0, dt.second); |
162 Expect.equals(0, dt.millisecond); | 162 Expect.equals(0, dt.millisecond); |
163 dt = new Date.fromMillisecondsSinceEpoch(-64011408800000, isUtc: true); | 163 dt = new DateTime.fromMillisecondsSinceEpoch(-64011408800000, isUtc: true); |
164 Expect.equals(-59, dt.year); | 164 Expect.equals(-59, dt.year); |
165 Expect.equals(7, dt.month); | 165 Expect.equals(7, dt.month); |
166 Expect.equals(24, dt.day); | 166 Expect.equals(24, dt.day); |
167 Expect.equals(5, dt.hour); | 167 Expect.equals(5, dt.hour); |
168 Expect.equals(6, dt.minute); | 168 Expect.equals(6, dt.minute); |
169 Expect.equals(40, dt.second); | 169 Expect.equals(40, dt.second); |
170 Expect.equals(0, dt.millisecond); | 170 Expect.equals(0, dt.millisecond); |
171 final int SECONDS_YEAR_2035 = 2051222400; | 171 final int SECONDS_YEAR_2035 = 2051222400; |
172 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1, | 172 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1, |
173 isUtc: true); | 173 isUtc: true); |
174 Expect.equals(2035, dt.year); | 174 Expect.equals(2035, dt.year); |
175 Expect.equals(1, dt.month); | 175 Expect.equals(1, dt.month); |
176 Expect.equals(1, dt.day); | 176 Expect.equals(1, dt.day); |
177 Expect.equals(0, dt.hour); | 177 Expect.equals(0, dt.hour); |
178 Expect.equals(0, dt.minute); | 178 Expect.equals(0, dt.minute); |
179 Expect.equals(0, dt.second); | 179 Expect.equals(0, dt.second); |
180 Expect.equals(1, dt.millisecond); | 180 Expect.equals(1, dt.millisecond); |
181 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, | 181 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, |
182 isUtc: true); | 182 isUtc: true); |
183 Expect.equals(2034, dt.year); | 183 Expect.equals(2034, dt.year); |
184 Expect.equals(12, dt.month); | 184 Expect.equals(12, dt.month); |
185 Expect.equals(31, dt.day); | 185 Expect.equals(31, dt.day); |
186 Expect.equals(23, dt.hour); | 186 Expect.equals(23, dt.hour); |
187 Expect.equals(59, dt.minute); | 187 Expect.equals(59, dt.minute); |
188 Expect.equals(59, dt.second); | 188 Expect.equals(59, dt.second); |
189 Expect.equals(999, dt.millisecond); | 189 Expect.equals(999, dt.millisecond); |
190 dt = new Date.utc(2035, 1, 1, 0, 0, 0, 1); | 190 dt = new DateTime.utc(2035, 1, 1, 0, 0, 0, 1); |
191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); | 191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); |
192 dt = new Date.utc(2034, 12, 31, 23, 59, 59, 999); | 192 dt = new DateTime.utc(2034, 12, 31, 23, 59, 59, 999); |
193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); | 193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); |
194 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); | 194 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); |
195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
197 Expect.equals(0, dt.second); | 197 Expect.equals(0, dt.second); |
198 Expect.equals(1, dt.millisecond); | 198 Expect.equals(1, dt.millisecond); |
199 Date dt2 = new Date( | 199 DateTime dt2 = new DateTime( |
200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, | 200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, |
201 dt.millisecond); | 201 dt.millisecond); |
202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); | 202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
203 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1); | 203 dt = new DateTime.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1); |
204 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 204 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
205 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 205 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
206 Expect.equals(59, dt.second); | 206 Expect.equals(59, dt.second); |
207 Expect.equals(999, dt.millisecond); | 207 Expect.equals(999, dt.millisecond); |
208 dt2 = new Date( | 208 dt2 = new DateTime( |
209 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, | 209 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, |
210 dt.millisecond); | 210 dt.millisecond); |
211 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); | 211 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
212 dt = new Date.fromMillisecondsSinceEpoch(2100000000 * 1000, isUtc: true); | 212 dt = new DateTime.fromMillisecondsSinceEpoch(2100000000 * 1000, isUtc: true)
; |
213 Expect.equals(2036, dt.year); | 213 Expect.equals(2036, dt.year); |
214 Expect.equals(7, dt.month); | 214 Expect.equals(7, dt.month); |
215 Expect.equals(18, dt.day); | 215 Expect.equals(18, dt.day); |
216 Expect.equals(13, dt.hour); | 216 Expect.equals(13, dt.hour); |
217 Expect.equals(20, dt.minute); | 217 Expect.equals(20, dt.minute); |
218 Expect.equals(0, dt.second); | 218 Expect.equals(0, dt.second); |
219 Expect.equals(0, dt.millisecond); | 219 Expect.equals(0, dt.millisecond); |
220 // Internally this will use the maximum value for the native calls. | 220 // Internally this will use the maximum value for the native calls. |
221 dt = new Date(2036, 7, 18, 13, 20); | 221 dt = new DateTime(2036, 7, 18, 13, 20); |
222 Expect.equals(2036, dt.year); | 222 Expect.equals(2036, dt.year); |
223 Expect.equals(7, dt.month); | 223 Expect.equals(7, dt.month); |
224 Expect.equals(18, dt.day); | 224 Expect.equals(18, dt.day); |
225 Expect.equals(13, dt.hour); | 225 Expect.equals(13, dt.hour); |
226 Expect.equals(20, dt.minute); | 226 Expect.equals(20, dt.minute); |
227 Expect.equals(0, dt.second); | 227 Expect.equals(0, dt.second); |
228 Expect.equals(0, dt.millisecond); | 228 Expect.equals(0, dt.millisecond); |
229 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); | 229 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); |
230 } | 230 } |
231 | 231 |
232 static void testExtremes() { | 232 static void testExtremes() { |
233 var dt = | 233 var dt = |
234 new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); | 234 new DateTime.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); |
235 Expect.equals(275760, dt.year); | 235 Expect.equals(275760, dt.year); |
236 Expect.equals(9, dt.month); | 236 Expect.equals(9, dt.month); |
237 Expect.equals(13, dt.day); | 237 Expect.equals(13, dt.day); |
238 Expect.equals(0, dt.hour); | 238 Expect.equals(0, dt.hour); |
239 Expect.equals(0, dt.minute); | 239 Expect.equals(0, dt.minute); |
240 Expect.equals(0, dt.second); | 240 Expect.equals(0, dt.second); |
241 Expect.equals(0, dt.millisecond); | 241 Expect.equals(0, dt.millisecond); |
242 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); | 242 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true)
; |
243 Expect.equals(-271821, dt.year); | 243 Expect.equals(-271821, dt.year); |
244 Expect.equals(4, dt.month); | 244 Expect.equals(4, dt.month); |
245 Expect.equals(20, dt.day); | 245 Expect.equals(20, dt.day); |
246 Expect.equals(0, dt.hour); | 246 Expect.equals(0, dt.hour); |
247 Expect.equals(0, dt.minute); | 247 Expect.equals(0, dt.minute); |
248 Expect.equals(0, dt.second); | 248 Expect.equals(0, dt.second); |
249 Expect.equals(0, dt.millisecond); | 249 Expect.equals(0, dt.millisecond); |
250 // Make sure that we can build the extreme dates in local too. | 250 // Make sure that we can build the extreme dates in local too. |
251 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); | 251 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000); |
252 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); | 252 dt = new DateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute); |
253 Expect.equals(8640000000000000, dt.millisecondsSinceEpoch); | 253 Expect.equals(8640000000000000, dt.millisecondsSinceEpoch); |
254 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); | 254 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000); |
255 dt = new Date(dt.year, dt.month, dt.day, dt.hour, dt.minute); | 255 dt = new DateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute); |
256 Expect.equals(-8640000000000000, dt.millisecondsSinceEpoch); | 256 Expect.equals(-8640000000000000, dt.millisecondsSinceEpoch); |
257 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001, | 257 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(8640000000000001
, |
258 isUtc: true)); | 258 isUtc: true)); |
259 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001, | 259 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(-864000000000000
1, |
260 isUtc: true)); | 260 isUtc: true)); |
261 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001)); | 261 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(8640000000000001
)); |
262 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001)); | 262 Expect.throws(() => new DateTime.fromMillisecondsSinceEpoch(-864000000000000
1)); |
263 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); | 263 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000); |
264 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 264 Expect.throws(() => new DateTime(dt.year, dt.month, dt.day, |
265 dt.hour, dt.minute, 0, 1)); | 265 dt.hour, dt.minute, 0, 1)); |
266 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); | 266 dt = new DateTime.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); |
267 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, | 267 Expect.throws(() => new DateTime.utc(dt.year, dt.month, dt.day, |
268 dt.hour, dt.minute, 0, 1)); | 268 dt.hour, dt.minute, 0, 1)); |
269 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); | 269 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000); |
270 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 270 Expect.throws(() => new DateTime(dt.year, dt.month, dt.day, |
271 dt.hour, dt.minute, 0, -1)); | 271 dt.hour, dt.minute, 0, -1)); |
272 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); | 272 dt = new DateTime.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true)
; |
273 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, | 273 Expect.throws(() => new DateTime.utc(dt.year, dt.month, dt.day, |
274 dt.hour, dt.minute, 0, -1)); | 274 dt.hour, dt.minute, 0, -1)); |
275 } | 275 } |
276 | 276 |
277 static void testUTCGetters() { | 277 static void testUTCGetters() { |
278 var dt = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); | 278 var dt = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true)
; |
279 Expect.equals(2011, dt.year); | 279 Expect.equals(2011, dt.year); |
280 Expect.equals(5, dt.month); | 280 Expect.equals(5, dt.month); |
281 Expect.equals(11, dt.day); | 281 Expect.equals(11, dt.day); |
282 Expect.equals(18, dt.hour); | 282 Expect.equals(18, dt.hour); |
283 Expect.equals(58, dt.minute); | 283 Expect.equals(58, dt.minute); |
284 Expect.equals(35, dt.second); | 284 Expect.equals(35, dt.second); |
285 Expect.equals(0, dt.millisecond); | 285 Expect.equals(0, dt.millisecond); |
286 Expect.equals(true, dt.isUtc); | 286 Expect.equals(true, dt.isUtc); |
287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); | 287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); |
288 dt = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); | 288 dt = new DateTime.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
289 Expect.equals(1969, dt.year); | 289 Expect.equals(1969, dt.year); |
290 Expect.equals(12, dt.month); | 290 Expect.equals(12, dt.month); |
291 Expect.equals(31, dt.day); | 291 Expect.equals(31, dt.day); |
292 Expect.equals(21, dt.hour); | 292 Expect.equals(21, dt.hour); |
293 Expect.equals(13, dt.minute); | 293 Expect.equals(13, dt.minute); |
294 Expect.equals(20, dt.second); | 294 Expect.equals(20, dt.second); |
295 Expect.equals(1, dt.millisecond); | 295 Expect.equals(1, dt.millisecond); |
296 } | 296 } |
297 | 297 |
298 static void testLocalGetters() { | 298 static void testLocalGetters() { |
299 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); | 299 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000); |
300 var dt2 = new Date.utc(dt1.year, dt1.month, dt1.day, | 300 var dt2 = new DateTime.utc(dt1.year, dt1.month, dt1.day, |
301 dt1.hour, dt1.minute, dt1.second, dt1.millisecond); | 301 dt1.hour, dt1.minute, dt1.second, dt1.millisecond); |
302 Duration zoneOffset = dt1.difference(dt2); | 302 Duration zoneOffset = dt1.difference(dt2); |
303 Expect.equals(true, zoneOffset.inDays == 0); | 303 Expect.equals(true, zoneOffset.inDays == 0); |
304 Expect.equals(true, zoneOffset.inHours.abs() <= 12); | 304 Expect.equals(true, zoneOffset.inHours.abs() <= 12); |
305 Expect.equals(dt1.year, dt2.year); | 305 Expect.equals(dt1.year, dt2.year); |
306 Expect.equals(dt1.month, dt2.month); | 306 Expect.equals(dt1.month, dt2.month); |
307 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); | 307 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); |
308 Expect.equals(true, dt1.hour < 24); | 308 Expect.equals(true, dt1.hour < 24); |
309 // There are timezones with 0.5 or 0.25 hour offsets. | 309 // There are timezones with 0.5 or 0.25 hour offsets. |
310 Expect.equals(true, | 310 Expect.equals(true, |
311 (dt1.minute == dt2.minute) || | 311 (dt1.minute == dt2.minute) || |
312 ((dt1.minute - dt2.minute).abs() == 30) || | 312 ((dt1.minute - dt2.minute).abs() == 30) || |
313 ((dt1.minute - dt2.minute).abs() == 15)); | 313 ((dt1.minute - dt2.minute).abs() == 15)); |
314 Expect.equals(dt1.second, dt2.second); | 314 Expect.equals(dt1.second, dt2.second); |
315 Expect.equals(dt1.millisecond, dt2.millisecond); | 315 Expect.equals(dt1.millisecond, dt2.millisecond); |
316 } | 316 } |
317 | 317 |
318 static void testConstructors() { | 318 static void testConstructors() { |
319 var dt0 = new Date.utc(2011, 5, 11, 18, 58, 35, 0); | 319 var dt0 = new DateTime.utc(2011, 5, 11, 18, 58, 35, 0); |
320 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); | 320 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); |
321 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); | 321 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000); |
322 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); | 322 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); |
323 Expect.equals(true, dt1 == dt0); | 323 Expect.equals(true, dt1 == dt0); |
324 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 324 var dt3 = new DateTime(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
325 dt1.second, dt1.millisecond); | 325 dt1.second, dt1.millisecond); |
326 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 326 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
327 Expect.equals(true, dt1 == dt3); | 327 Expect.equals(true, dt1 == dt3); |
328 dt3 = new Date( | 328 dt3 = new DateTime( |
329 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 329 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
330 dt1.second, dt1.millisecond); | 330 dt1.second, dt1.millisecond); |
331 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 331 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
332 Expect.equals(true, dt1 == dt3); | 332 Expect.equals(true, dt1 == dt3); |
333 var dt2 = dt1.toLocal(); | 333 var dt2 = dt1.toLocal(); |
334 dt3 = new Date(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); | 334 dt3 = new DateTime(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); |
335 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 335 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
336 Expect.equals(true, dt2 == dt3); | 336 Expect.equals(true, dt2 == dt3); |
337 dt1 = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); | 337 dt1 = new DateTime.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
338 dt3 = new Date.utc(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 338 dt3 = new DateTime.utc(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
339 dt1.second, dt1.millisecond); | 339 dt1.second, dt1.millisecond); |
340 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 340 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
341 dt3 = new Date.utc(99, 1, 2, 10, 11, 12, 0); | 341 dt3 = new DateTime.utc(99, 1, 2, 10, 11, 12, 0); |
342 Expect.equals(99, dt3.year); | 342 Expect.equals(99, dt3.year); |
343 Expect.equals(1, dt3.month); | 343 Expect.equals(1, dt3.month); |
344 Expect.equals(2, dt3.day); | 344 Expect.equals(2, dt3.day); |
345 Expect.equals(10, dt3.hour); | 345 Expect.equals(10, dt3.hour); |
346 Expect.equals(11, dt3.minute); | 346 Expect.equals(11, dt3.minute); |
347 Expect.equals(12, dt3.second); | 347 Expect.equals(12, dt3.second); |
348 Expect.equals(0, dt3.millisecond); | 348 Expect.equals(0, dt3.millisecond); |
349 Expect.equals(true, dt3.isUtc); | 349 Expect.equals(true, dt3.isUtc); |
350 var dt4 = new Date(99, 1, 2); | 350 var dt4 = new DateTime(99, 1, 2); |
351 Expect.equals(99, dt4.year); | 351 Expect.equals(99, dt4.year); |
352 Expect.equals(1, dt4.month); | 352 Expect.equals(1, dt4.month); |
353 Expect.equals(2, dt4.day); | 353 Expect.equals(2, dt4.day); |
354 Expect.equals(0, dt4.hour); | 354 Expect.equals(0, dt4.hour); |
355 Expect.equals(0, dt4.minute); | 355 Expect.equals(0, dt4.minute); |
356 Expect.equals(0, dt4.second); | 356 Expect.equals(0, dt4.second); |
357 Expect.equals(0, dt4.millisecond); | 357 Expect.equals(0, dt4.millisecond); |
358 Expect.isFalse(dt4.isUtc); | 358 Expect.isFalse(dt4.isUtc); |
359 var dt5 = new Date.utc(99, 1, 2); | 359 var dt5 = new DateTime.utc(99, 1, 2); |
360 Expect.equals(99, dt5.year); | 360 Expect.equals(99, dt5.year); |
361 Expect.equals(1, dt5.month); | 361 Expect.equals(1, dt5.month); |
362 Expect.equals(2, dt5.day); | 362 Expect.equals(2, dt5.day); |
363 Expect.equals(0, dt5.hour); | 363 Expect.equals(0, dt5.hour); |
364 Expect.equals(0, dt5.minute); | 364 Expect.equals(0, dt5.minute); |
365 Expect.equals(0, dt5.second); | 365 Expect.equals(0, dt5.second); |
366 Expect.equals(0, dt5.millisecond); | 366 Expect.equals(0, dt5.millisecond); |
367 Expect.isTrue(dt5.isUtc); | 367 Expect.isTrue(dt5.isUtc); |
368 var dt6 = new Date(2012, 2, 27, 13, 27, 0); | 368 var dt6 = new DateTime(2012, 2, 27, 13, 27, 0); |
369 Expect.equals(2012, dt6.year); | 369 Expect.equals(2012, dt6.year); |
370 Expect.equals(2, dt6.month); | 370 Expect.equals(2, dt6.month); |
371 Expect.equals(27, dt6.day); | 371 Expect.equals(27, dt6.day); |
372 Expect.equals(13, dt6.hour); | 372 Expect.equals(13, dt6.hour); |
373 Expect.equals(27, dt6.minute); | 373 Expect.equals(27, dt6.minute); |
374 Expect.equals(0, dt6.second); | 374 Expect.equals(0, dt6.second); |
375 Expect.equals(0, dt6.millisecond); | 375 Expect.equals(0, dt6.millisecond); |
376 Expect.isFalse(dt6.isUtc); | 376 Expect.isFalse(dt6.isUtc); |
377 var dt7 = new Date.utc(2012, 2, 27, 13, 27, 0); | 377 var dt7 = new DateTime.utc(2012, 2, 27, 13, 27, 0); |
378 Expect.equals(2012, dt7.year); | 378 Expect.equals(2012, dt7.year); |
379 Expect.equals(2, dt7.month); | 379 Expect.equals(2, dt7.month); |
380 Expect.equals(27, dt7.day); | 380 Expect.equals(27, dt7.day); |
381 Expect.equals(13, dt7.hour); | 381 Expect.equals(13, dt7.hour); |
382 Expect.equals(27, dt7.minute); | 382 Expect.equals(27, dt7.minute); |
383 Expect.equals(0, dt7.second); | 383 Expect.equals(0, dt7.second); |
384 Expect.equals(0, dt7.millisecond); | 384 Expect.equals(0, dt7.millisecond); |
385 Expect.isTrue(dt7.isUtc); | 385 Expect.isTrue(dt7.isUtc); |
386 } | 386 } |
387 | 387 |
388 static void testChangeTimeZone() { | 388 static void testChangeTimeZone() { |
389 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); | 389 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000); |
390 var dt2 = dt1.toUtc(); | 390 var dt2 = dt1.toUtc(); |
391 Expect.equals(dt1.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); | 391 Expect.equals(dt1.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
392 var dt3 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); | 392 var dt3 = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true
); |
393 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 393 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
394 Expect.equals(dt2.year, dt3.year); | 394 Expect.equals(dt2.year, dt3.year); |
395 Expect.equals(dt2.month, dt3.month); | 395 Expect.equals(dt2.month, dt3.month); |
396 Expect.equals(dt2.day, dt3.day); | 396 Expect.equals(dt2.day, dt3.day); |
397 Expect.equals(dt2.hour, dt3.hour); | 397 Expect.equals(dt2.hour, dt3.hour); |
398 Expect.equals(dt2.minute, dt3.minute); | 398 Expect.equals(dt2.minute, dt3.minute); |
399 Expect.equals(dt2.second, dt3.second); | 399 Expect.equals(dt2.second, dt3.second); |
400 Expect.equals(dt2.millisecond, dt3.millisecond); | 400 Expect.equals(dt2.millisecond, dt3.millisecond); |
401 var dt4 = dt3.toLocal(); | 401 var dt4 = dt3.toLocal(); |
402 Expect.equals(dt1.year, dt4.year); | 402 Expect.equals(dt1.year, dt4.year); |
403 Expect.equals(dt1.month, dt4.month); | 403 Expect.equals(dt1.month, dt4.month); |
404 Expect.equals(dt1.day, dt4.day); | 404 Expect.equals(dt1.day, dt4.day); |
405 Expect.equals(dt1.hour, dt4.hour); | 405 Expect.equals(dt1.hour, dt4.hour); |
406 Expect.equals(dt1.minute, dt4.minute); | 406 Expect.equals(dt1.minute, dt4.minute); |
407 Expect.equals(dt1.second, dt4.second); | 407 Expect.equals(dt1.second, dt4.second); |
408 Expect.equals(dt1.millisecond, dt4.millisecond); | 408 Expect.equals(dt1.millisecond, dt4.millisecond); |
409 } | 409 } |
410 | 410 |
411 static void testSubAdd() { | 411 static void testSubAdd() { |
412 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); | 412 var dt1 = new DateTime.fromMillisecondsSinceEpoch(1305140315000, isUtc: true
); |
413 var dt2 = dt1.add(new Duration(milliseconds: | 413 var dt2 = dt1.add(new Duration(milliseconds: |
414 3 * Duration.MILLISECONDS_PER_SECOND + 5)); | 414 3 * Duration.MILLISECONDS_PER_SECOND + 5)); |
415 Expect.equals(dt1.year, dt2.year); | 415 Expect.equals(dt1.year, dt2.year); |
416 Expect.equals(dt1.month, dt2.month); | 416 Expect.equals(dt1.month, dt2.month); |
417 Expect.equals(dt1.day, dt2.day); | 417 Expect.equals(dt1.day, dt2.day); |
418 Expect.equals(dt1.hour, dt2.hour); | 418 Expect.equals(dt1.hour, dt2.hour); |
419 Expect.equals(dt1.minute, dt2.minute); | 419 Expect.equals(dt1.minute, dt2.minute); |
420 Expect.equals(dt1.second + 3, dt2.second); | 420 Expect.equals(dt1.second + 3, dt2.second); |
421 Expect.equals(dt1.millisecond + 5, dt2.millisecond); | 421 Expect.equals(dt1.millisecond + 5, dt2.millisecond); |
422 var dt3 = dt2.subtract(new Duration(milliseconds: | 422 var dt3 = dt2.subtract(new Duration(milliseconds: |
423 3 * Duration.MILLISECONDS_PER_SECOND + 5)); | 423 3 * Duration.MILLISECONDS_PER_SECOND + 5)); |
424 Expect.equals(true, dt1 == dt3); | 424 Expect.equals(true, dt1 == dt3); |
425 Expect.equals(false, dt1 == dt2); | 425 Expect.equals(false, dt1 == dt2); |
426 } | 426 } |
427 | 427 |
428 static void testUnderflowAndOverflow() { | 428 static void testUnderflowAndOverflow() { |
429 final dtBase = new Date(2012, 6, 20, 12, 30, 30, 500); | 429 final dtBase = new DateTime(2012, 6, 20, 12, 30, 30, 500); |
430 | 430 |
431 // Millisecond | 431 // Millisecond |
432 print(" >>> Millisecond+"); | 432 print(" >>> Millisecond+"); |
433 var dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, | 433 var dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, |
434 dtBase.minute, dtBase.second, 1000); | 434 dtBase.minute, dtBase.second, 1000); |
435 Expect.equals(dtBase.year, dt.year); | 435 Expect.equals(dtBase.year, dt.year); |
436 Expect.equals(dtBase.month, dt.month); | 436 Expect.equals(dtBase.month, dt.month); |
437 Expect.equals(dtBase.day, dt.day); | 437 Expect.equals(dtBase.day, dt.day); |
438 Expect.equals(dtBase.hour, dt.hour); | 438 Expect.equals(dtBase.hour, dt.hour); |
439 Expect.equals(dtBase.minute, dt.minute); | 439 Expect.equals(dtBase.minute, dt.minute); |
440 Expect.equals(dtBase.second + 1, dt.second); | 440 Expect.equals(dtBase.second + 1, dt.second); |
441 Expect.equals(0, dt.millisecond); | 441 Expect.equals(0, dt.millisecond); |
442 | 442 |
443 print(" >>> Millisecond-"); | 443 print(" >>> Millisecond-"); |
444 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, | 444 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, |
445 dtBase.minute, dtBase.second, -1000); | 445 dtBase.minute, dtBase.second, -1000); |
446 Expect.equals(dtBase.year, dt.year); | 446 Expect.equals(dtBase.year, dt.year); |
447 Expect.equals(dtBase.month, dt.month); | 447 Expect.equals(dtBase.month, dt.month); |
448 Expect.equals(dtBase.day, dt.day); | 448 Expect.equals(dtBase.day, dt.day); |
449 Expect.equals(dtBase.hour, dt.hour); | 449 Expect.equals(dtBase.hour, dt.hour); |
450 Expect.equals(dtBase.minute, dt.minute); | 450 Expect.equals(dtBase.minute, dt.minute); |
451 Expect.equals(dtBase.second - 1, dt.second); | 451 Expect.equals(dtBase.second - 1, dt.second); |
452 Expect.equals(0, dt.millisecond); | 452 Expect.equals(0, dt.millisecond); |
453 | 453 |
454 // Second | 454 // Second |
455 print(" >>> Second+"); | 455 print(" >>> Second+"); |
456 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, | 456 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, |
457 dtBase.minute, 60, dtBase.millisecond); | 457 dtBase.minute, 60, dtBase.millisecond); |
458 Expect.equals(dtBase.year, dt.year); | 458 Expect.equals(dtBase.year, dt.year); |
459 Expect.equals(dtBase.month, dt.month); | 459 Expect.equals(dtBase.month, dt.month); |
460 Expect.equals(dtBase.day, dt.day); | 460 Expect.equals(dtBase.day, dt.day); |
461 Expect.equals(dtBase.hour, dt.hour); | 461 Expect.equals(dtBase.hour, dt.hour); |
462 Expect.equals(dtBase.minute + 1, dt.minute); | 462 Expect.equals(dtBase.minute + 1, dt.minute); |
463 Expect.equals(0, dt.second); | 463 Expect.equals(0, dt.second); |
464 Expect.equals(dtBase.millisecond, dt.millisecond); | 464 Expect.equals(dtBase.millisecond, dt.millisecond); |
465 | 465 |
466 print(" >>> Second-"); | 466 print(" >>> Second-"); |
467 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, | 467 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, |
468 dtBase.minute, -60, dtBase.millisecond); | 468 dtBase.minute, -60, dtBase.millisecond); |
469 Expect.equals(dtBase.year, dt.year); | 469 Expect.equals(dtBase.year, dt.year); |
470 Expect.equals(dtBase.month, dt.month); | 470 Expect.equals(dtBase.month, dt.month); |
471 Expect.equals(dtBase.day, dt.day); | 471 Expect.equals(dtBase.day, dt.day); |
472 Expect.equals(dtBase.hour, dt.hour); | 472 Expect.equals(dtBase.hour, dt.hour); |
473 Expect.equals(dtBase.minute - 1, dt.minute); | 473 Expect.equals(dtBase.minute - 1, dt.minute); |
474 Expect.equals(0, dt.second); | 474 Expect.equals(0, dt.second); |
475 Expect.equals(dtBase.millisecond, dt.millisecond); | 475 Expect.equals(dtBase.millisecond, dt.millisecond); |
476 | 476 |
477 // Minute | 477 // Minute |
478 print(" >>> Minute+"); | 478 print(" >>> Minute+"); |
479 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 60, | 479 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, 60, |
480 dtBase.second, dtBase.millisecond); | 480 dtBase.second, dtBase.millisecond); |
481 Expect.equals(dtBase.year, dt.year); | 481 Expect.equals(dtBase.year, dt.year); |
482 Expect.equals(dtBase.month, dt.month); | 482 Expect.equals(dtBase.month, dt.month); |
483 Expect.equals(dtBase.day, dt.day); | 483 Expect.equals(dtBase.day, dt.day); |
484 Expect.equals(dtBase.hour + 1, dt.hour); | 484 Expect.equals(dtBase.hour + 1, dt.hour); |
485 Expect.equals(0, dt.minute); | 485 Expect.equals(0, dt.minute); |
486 Expect.equals(dtBase.second, dt.second); | 486 Expect.equals(dtBase.second, dt.second); |
487 Expect.equals(dtBase.millisecond, dt.millisecond); | 487 Expect.equals(dtBase.millisecond, dt.millisecond); |
488 | 488 |
489 print(" >>> Minute-"); | 489 print(" >>> Minute-"); |
490 dt = new Date(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, -60, | 490 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, dtBase.hour, -60, |
491 dtBase.second, dtBase.millisecond); | 491 dtBase.second, dtBase.millisecond); |
492 Expect.equals(dtBase.year, dt.year); | 492 Expect.equals(dtBase.year, dt.year); |
493 Expect.equals(dtBase.month, dt.month); | 493 Expect.equals(dtBase.month, dt.month); |
494 Expect.equals(dtBase.day, dt.day); | 494 Expect.equals(dtBase.day, dt.day); |
495 Expect.equals(dtBase.hour - 1, dt.hour); | 495 Expect.equals(dtBase.hour - 1, dt.hour); |
496 Expect.equals(0, dt.minute); | 496 Expect.equals(0, dt.minute); |
497 Expect.equals(dtBase.second, dt.second); | 497 Expect.equals(dtBase.second, dt.second); |
498 Expect.equals(dtBase.millisecond, dt.millisecond); | 498 Expect.equals(dtBase.millisecond, dt.millisecond); |
499 | 499 |
500 // Hour | 500 // Hour |
501 print(" >>> Hour+"); | 501 print(" >>> Hour+"); |
502 dt = new Date(dtBase.year, dtBase.month, dtBase.day, 24, dtBase.minute, | 502 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, 24, dtBase.minute, |
503 dtBase.second, dtBase.millisecond); | 503 dtBase.second, dtBase.millisecond); |
504 Expect.equals(dtBase.year, dt.year); | 504 Expect.equals(dtBase.year, dt.year); |
505 Expect.equals(dtBase.month, dt.month); | 505 Expect.equals(dtBase.month, dt.month); |
506 Expect.equals(dtBase.day + 1, dt.day); | 506 Expect.equals(dtBase.day + 1, dt.day); |
507 Expect.equals(0, dt.hour); | 507 Expect.equals(0, dt.hour); |
508 Expect.equals(dtBase.minute, dt.minute); | 508 Expect.equals(dtBase.minute, dt.minute); |
509 Expect.equals(dtBase.second, dt.second); | 509 Expect.equals(dtBase.second, dt.second); |
510 Expect.equals(dtBase.millisecond, dt.millisecond); | 510 Expect.equals(dtBase.millisecond, dt.millisecond); |
511 | 511 |
512 print(" >>> Hour-"); | 512 print(" >>> Hour-"); |
513 dt = new Date(dtBase.year, dtBase.month, dtBase.day, -24, dtBase.minute, | 513 dt = new DateTime(dtBase.year, dtBase.month, dtBase.day, -24, dtBase.minute, |
514 dtBase.second, dtBase.millisecond); | 514 dtBase.second, dtBase.millisecond); |
515 Expect.equals(dtBase.year, dt.year); | 515 Expect.equals(dtBase.year, dt.year); |
516 Expect.equals(dtBase.month, dt.month); | 516 Expect.equals(dtBase.month, dt.month); |
517 Expect.equals(dtBase.day - 1, dt.day); | 517 Expect.equals(dtBase.day - 1, dt.day); |
518 Expect.equals(0, dt.hour); | 518 Expect.equals(0, dt.hour); |
519 Expect.equals(dtBase.minute, dt.minute); | 519 Expect.equals(dtBase.minute, dt.minute); |
520 Expect.equals(dtBase.second, dt.second); | 520 Expect.equals(dtBase.second, dt.second); |
521 Expect.equals(dtBase.millisecond, dt.millisecond); | 521 Expect.equals(dtBase.millisecond, dt.millisecond); |
522 | 522 |
523 // Day | 523 // Day |
524 print(" >>> Day+"); | 524 print(" >>> Day+"); |
525 dt = new Date(dtBase.year, dtBase.month, 31, dtBase.hour, dtBase.minute, | 525 dt = new DateTime(dtBase.year, dtBase.month, 31, dtBase.hour, dtBase.minute, |
526 dtBase.second, dtBase.millisecond); | 526 dtBase.second, dtBase.millisecond); |
527 Expect.equals(dtBase.year, dt.year); | 527 Expect.equals(dtBase.year, dt.year); |
528 Expect.equals(dtBase.month + 1, dt.month); | 528 Expect.equals(dtBase.month + 1, dt.month); |
529 Expect.equals(1, dt.day); | 529 Expect.equals(1, dt.day); |
530 Expect.equals(dtBase.hour, dt.hour); | 530 Expect.equals(dtBase.hour, dt.hour); |
531 Expect.equals(dtBase.minute, dt.minute); | 531 Expect.equals(dtBase.minute, dt.minute); |
532 Expect.equals(dtBase.second, dt.second); | 532 Expect.equals(dtBase.second, dt.second); |
533 Expect.equals(dtBase.millisecond, dt.millisecond); | 533 Expect.equals(dtBase.millisecond, dt.millisecond); |
534 | 534 |
535 print(" >>> Day-"); | 535 print(" >>> Day-"); |
536 dt = new Date(dtBase.year, dtBase.month, -30, dtBase.hour, dtBase.minute, | 536 dt = new DateTime(dtBase.year, dtBase.month, -30, dtBase.hour, dtBase.minute
, |
537 dtBase.second, dtBase.millisecond); | 537 dtBase.second, dtBase.millisecond); |
538 Expect.equals(dtBase.year, dt.year); | 538 Expect.equals(dtBase.year, dt.year); |
539 Expect.equals(dtBase.month - 1, dt.month); | 539 Expect.equals(dtBase.month - 1, dt.month); |
540 Expect.equals(1, dt.day); | 540 Expect.equals(1, dt.day); |
541 Expect.equals(dtBase.hour, dt.hour); | 541 Expect.equals(dtBase.hour, dt.hour); |
542 Expect.equals(dtBase.minute, dt.minute); | 542 Expect.equals(dtBase.minute, dt.minute); |
543 Expect.equals(dtBase.second, dt.second); | 543 Expect.equals(dtBase.second, dt.second); |
544 Expect.equals(dtBase.millisecond, dt.millisecond); | 544 Expect.equals(dtBase.millisecond, dt.millisecond); |
545 | 545 |
546 // Month | 546 // Month |
547 print(" >>> Month+"); | 547 print(" >>> Month+"); |
548 dt = new Date(dtBase.year, 13, dtBase.day, dtBase.hour, dtBase.minute, | 548 dt = new DateTime(dtBase.year, 13, dtBase.day, dtBase.hour, dtBase.minute, |
549 dtBase.second, dtBase.millisecond); | 549 dtBase.second, dtBase.millisecond); |
550 Expect.equals(dtBase.year + 1, dt.year); | 550 Expect.equals(dtBase.year + 1, dt.year); |
551 Expect.equals(1, dt.month); | 551 Expect.equals(1, dt.month); |
552 Expect.equals(dtBase.day, dt.day); | 552 Expect.equals(dtBase.day, dt.day); |
553 Expect.equals(dtBase.hour, dt.hour); | 553 Expect.equals(dtBase.hour, dt.hour); |
554 Expect.equals(dtBase.minute, dt.minute); | 554 Expect.equals(dtBase.minute, dt.minute); |
555 Expect.equals(dtBase.second, dt.second); | 555 Expect.equals(dtBase.second, dt.second); |
556 Expect.equals(dtBase.millisecond, dt.millisecond); | 556 Expect.equals(dtBase.millisecond, dt.millisecond); |
557 | 557 |
558 print(" >>> Month-"); | 558 print(" >>> Month-"); |
559 dt = new Date(dtBase.year, -11, dtBase.day, dtBase.hour, dtBase.minute, | 559 dt = new DateTime(dtBase.year, -11, dtBase.day, dtBase.hour, dtBase.minute, |
560 dtBase.second, dtBase.millisecond); | 560 dtBase.second, dtBase.millisecond); |
561 Expect.equals(dtBase.year - 1, dt.year); | 561 Expect.equals(dtBase.year - 1, dt.year); |
562 Expect.equals(1, dt.month); | 562 Expect.equals(1, dt.month); |
563 Expect.equals(dtBase.day, dt.day); | 563 Expect.equals(dtBase.day, dt.day); |
564 Expect.equals(dtBase.hour, dt.hour); | 564 Expect.equals(dtBase.hour, dt.hour); |
565 Expect.equals(dtBase.minute, dt.minute); | 565 Expect.equals(dtBase.minute, dt.minute); |
566 Expect.equals(dtBase.second, dt.second); | 566 Expect.equals(dtBase.second, dt.second); |
567 Expect.equals(dtBase.millisecond, dt.millisecond); | 567 Expect.equals(dtBase.millisecond, dt.millisecond); |
568 | 568 |
569 // Flowing all the way up the chain. | 569 // Flowing all the way up the chain. |
570 print(" >>> Flow+"); | 570 print(" >>> Flow+"); |
571 var dtBase1 = new Date(2012, 12, 31, 23, 59, 59, 999); | 571 var dtBase1 = new DateTime(2012, 12, 31, 23, 59, 59, 999); |
572 var dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, | 572 var dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day, |
573 dtBase1.hour, dtBase1.minute, dtBase1.second, | 573 dtBase1.hour, dtBase1.minute, dtBase1.second, |
574 dtBase1.millisecond + 1); | 574 dtBase1.millisecond + 1); |
575 Expect.equals(dtBase1.year + 1, dtTick.year); | 575 Expect.equals(dtBase1.year + 1, dtTick.year); |
576 Expect.equals(1, dtTick.month); | 576 Expect.equals(1, dtTick.month); |
577 Expect.equals(1, dtTick.day); | 577 Expect.equals(1, dtTick.day); |
578 Expect.equals(0, dtTick.hour); | 578 Expect.equals(0, dtTick.hour); |
579 Expect.equals(0, dtTick.minute); | 579 Expect.equals(0, dtTick.minute); |
580 Expect.equals(0, dtTick.second); | 580 Expect.equals(0, dtTick.second); |
581 Expect.equals(0, dtTick.millisecond); | 581 Expect.equals(0, dtTick.millisecond); |
582 | 582 |
583 print(" >>> Flow-"); | 583 print(" >>> Flow-"); |
584 dtBase1 = new Date(2012, 1, 1, 0, 0, 0, 0); | 584 dtBase1 = new DateTime(2012, 1, 1, 0, 0, 0, 0); |
585 dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, dtBase1.hour, | 585 dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day, dtBase1.hour
, |
586 dtBase1.minute, dtBase1.second, dtBase1.millisecond - 1); | 586 dtBase1.minute, dtBase1.second, dtBase1.millisecond - 1); |
587 Expect.equals(dtBase1.year - 1, dtTick.year); | 587 Expect.equals(dtBase1.year - 1, dtTick.year); |
588 Expect.equals(12, dtTick.month); | 588 Expect.equals(12, dtTick.month); |
589 Expect.equals(31, dtTick.day); | 589 Expect.equals(31, dtTick.day); |
590 Expect.equals(23, dtTick.hour); | 590 Expect.equals(23, dtTick.hour); |
591 Expect.equals(59, dtTick.minute); | 591 Expect.equals(59, dtTick.minute); |
592 Expect.equals(59, dtTick.second); | 592 Expect.equals(59, dtTick.second); |
593 Expect.equals(999, dtTick.millisecond); | 593 Expect.equals(999, dtTick.millisecond); |
594 | 594 |
595 print(" >>> extra underflow"); | 595 print(" >>> extra underflow"); |
596 dtTick = new Date(dtBase1.year, dtBase1.month, dtBase1.day, -17520, | 596 dtTick = new DateTime(dtBase1.year, dtBase1.month, dtBase1.day, -17520, |
597 dtBase1.minute, dtBase1.second, dtBase1.millisecond); | 597 dtBase1.minute, dtBase1.second, dtBase1.millisecond); |
598 Expect.equals(dtBase1.year - 2, dtTick.year); | 598 Expect.equals(dtBase1.year - 2, dtTick.year); |
599 Expect.equals(dtBase1.month, dtTick.month); | 599 Expect.equals(dtBase1.month, dtTick.month); |
600 Expect.equals(dtBase1.day, dtTick.day); | 600 Expect.equals(dtBase1.day, dtTick.day); |
601 Expect.equals(dtBase1.hour, dtTick.hour); | 601 Expect.equals(dtBase1.hour, dtTick.hour); |
602 Expect.equals(dtBase1.minute, dtTick.minute); | 602 Expect.equals(dtBase1.minute, dtTick.minute); |
603 Expect.equals(dtBase1.second, dtTick.second); | 603 Expect.equals(dtBase1.second, dtTick.second); |
604 Expect.equals(dtBase1.millisecond, dtTick.millisecond); | 604 Expect.equals(dtBase1.millisecond, dtTick.millisecond); |
605 } | 605 } |
606 | 606 |
607 static void testDateStrings() { | 607 static void testDateStrings() { |
608 // TODO(floitsch): Clean up the Date API that deals with strings. | 608 // TODO(floitsch): Clean up the DateTime API that deals with strings. |
609 var dt1 = new Date.fromString("2011-05-11 18:58:35Z"); | 609 var dt1 = new DateTime.fromString("2011-05-11 18:58:35Z"); |
610 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); | 610 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
611 Expect.isTrue(dt1.isUtc); | 611 Expect.isTrue(dt1.isUtc); |
612 dt1 = new Date.fromString("20110511 18:58:35z"); | 612 dt1 = new DateTime.fromString("20110511 18:58:35z"); |
613 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); | 613 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
614 Expect.isTrue(dt1.isUtc); | 614 Expect.isTrue(dt1.isUtc); |
615 dt1 = new Date.fromString("+20110511 18:58:35z"); | 615 dt1 = new DateTime.fromString("+20110511 18:58:35z"); |
616 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); | 616 Expect.equals(1305140315000, dt1.millisecondsSinceEpoch); |
617 Expect.isTrue(dt1.isUtc); | 617 Expect.isTrue(dt1.isUtc); |
618 var str = dt1.toString(); | 618 var str = dt1.toString(); |
619 var dt2 = new Date.fromString(str); | 619 var dt2 = new DateTime.fromString(str); |
620 Expect.equals(true, dt1 == dt2); | 620 Expect.equals(true, dt1 == dt2); |
621 var dt3 = dt1.toUtc(); | 621 var dt3 = dt1.toUtc(); |
622 str = dt3.toString(); | 622 str = dt3.toString(); |
623 Expect.equals("2011-05-11 18:58:35.000Z", str); | 623 Expect.equals("2011-05-11 18:58:35.000Z", str); |
624 var dt4 = new Date.fromString("-1234-01-01 00:00:00Z"); | 624 var dt4 = new DateTime.fromString("-1234-01-01 00:00:00Z"); |
625 Expect.equals(-1234, dt4.year); | 625 Expect.equals(-1234, dt4.year); |
626 Expect.equals(1, dt4.month); | 626 Expect.equals(1, dt4.month); |
627 Expect.equals(1, dt4.day); | 627 Expect.equals(1, dt4.day); |
628 Expect.equals(0, dt4.hour); | 628 Expect.equals(0, dt4.hour); |
629 Expect.equals(0, dt4.minute); | 629 Expect.equals(0, dt4.minute); |
630 Expect.equals(0, dt4.second); | 630 Expect.equals(0, dt4.second); |
631 Expect.equals(0, dt4.millisecond); | 631 Expect.equals(0, dt4.millisecond); |
632 Expect.isTrue(dt4.isUtc); | 632 Expect.isTrue(dt4.isUtc); |
633 var dt5 = new Date.fromString("0099-01-02"); | 633 var dt5 = new DateTime.fromString("0099-01-02"); |
634 Expect.equals(99, dt5.year); | 634 Expect.equals(99, dt5.year); |
635 Expect.equals(1, dt5.month); | 635 Expect.equals(1, dt5.month); |
636 Expect.equals(2, dt5.day); | 636 Expect.equals(2, dt5.day); |
637 Expect.equals(0, dt5.hour); | 637 Expect.equals(0, dt5.hour); |
638 Expect.equals(0, dt5.minute); | 638 Expect.equals(0, dt5.minute); |
639 Expect.equals(0, dt5.second); | 639 Expect.equals(0, dt5.second); |
640 Expect.equals(0, dt5.millisecond); | 640 Expect.equals(0, dt5.millisecond); |
641 Expect.isFalse(dt5.isUtc); | 641 Expect.isFalse(dt5.isUtc); |
642 var dt6 = new Date.fromString("2012-01-01 00:00:10.012"); | 642 var dt6 = new DateTime.fromString("2012-01-01 00:00:10.012"); |
643 Expect.equals(12, dt6.millisecond); | 643 Expect.equals(12, dt6.millisecond); |
644 dt6 = new Date.fromString("2012-01-01 00:00:10.003"); | 644 dt6 = new DateTime.fromString("2012-01-01 00:00:10.003"); |
645 Expect.equals(3, dt6.millisecond); | 645 Expect.equals(3, dt6.millisecond); |
646 dt6 = new Date.fromString("2012-01-01 00:00:10.5"); | 646 dt6 = new DateTime.fromString("2012-01-01 00:00:10.5"); |
647 Expect.equals(500, dt6.millisecond); | 647 Expect.equals(500, dt6.millisecond); |
648 dt6 = new Date.fromString("2012-01-01 00:00:10.003Z"); | 648 dt6 = new DateTime.fromString("2012-01-01 00:00:10.003Z"); |
649 Expect.equals(3, dt6.millisecond); | 649 Expect.equals(3, dt6.millisecond); |
650 dt6 = new Date.fromString("2012-01-01 00:00:10.5z"); | 650 dt6 = new DateTime.fromString("2012-01-01 00:00:10.5z"); |
651 Expect.equals(500, dt6.millisecond); | 651 Expect.equals(500, dt6.millisecond); |
652 var dt7 = new Date.fromString("2011-05-11T18:58:35Z"); | 652 var dt7 = new DateTime.fromString("2011-05-11T18:58:35Z"); |
653 Expect.equals(1305140315000, dt7.millisecondsSinceEpoch); | 653 Expect.equals(1305140315000, dt7.millisecondsSinceEpoch); |
654 var dt8 = new Date.fromString("-1234-01-01T00:00:00Z"); | 654 var dt8 = new DateTime.fromString("-1234-01-01T00:00:00Z"); |
655 Expect.equals(-1234, dt8.year); | 655 Expect.equals(-1234, dt8.year); |
656 Expect.equals(1, dt8.month); | 656 Expect.equals(1, dt8.month); |
657 Expect.equals(1, dt8.day); | 657 Expect.equals(1, dt8.day); |
658 Expect.equals(0, dt8.hour); | 658 Expect.equals(0, dt8.hour); |
659 Expect.equals(0, dt8.minute); | 659 Expect.equals(0, dt8.minute); |
660 Expect.equals(0, dt8.second); | 660 Expect.equals(0, dt8.second); |
661 Expect.equals(0, dt8.millisecond); | 661 Expect.equals(0, dt8.millisecond); |
662 Expect.isTrue(dt8.isUtc); | 662 Expect.isTrue(dt8.isUtc); |
663 var dt9 = new Date.fromString("-1234-01-01T00:00:00"); | 663 var dt9 = new DateTime.fromString("-1234-01-01T00:00:00"); |
664 Expect.equals(-1234, dt9.year); | 664 Expect.equals(-1234, dt9.year); |
665 Expect.equals(1, dt9.month); | 665 Expect.equals(1, dt9.month); |
666 Expect.equals(1, dt9.day); | 666 Expect.equals(1, dt9.day); |
667 Expect.equals(0, dt9.hour); | 667 Expect.equals(0, dt9.hour); |
668 Expect.equals(0, dt9.minute); | 668 Expect.equals(0, dt9.minute); |
669 Expect.equals(0, dt9.second); | 669 Expect.equals(0, dt9.second); |
670 Expect.equals(0, dt9.millisecond); | 670 Expect.equals(0, dt9.millisecond); |
671 Expect.isFalse(dt9.isUtc); | 671 Expect.isFalse(dt9.isUtc); |
672 var dt10 = new Date.fromString("-12340101"); | 672 var dt10 = new DateTime.fromString("-12340101"); |
673 Expect.equals(-1234, dt10.year); | 673 Expect.equals(-1234, dt10.year); |
674 Expect.equals(1, dt10.month); | 674 Expect.equals(1, dt10.month); |
675 Expect.equals(1, dt10.day); | 675 Expect.equals(1, dt10.day); |
676 Expect.equals(0, dt10.hour); | 676 Expect.equals(0, dt10.hour); |
677 Expect.equals(0, dt10.minute); | 677 Expect.equals(0, dt10.minute); |
678 Expect.equals(0, dt10.second); | 678 Expect.equals(0, dt10.second); |
679 Expect.equals(0, dt10.millisecond); | 679 Expect.equals(0, dt10.millisecond); |
680 Expect.isFalse(dt10.isUtc); | 680 Expect.isFalse(dt10.isUtc); |
681 dt1 = new Date.fromString("2012-02-27 13:27:00"); | 681 dt1 = new DateTime.fromString("2012-02-27 13:27:00"); |
682 Expect.equals(2012, dt1.year); | 682 Expect.equals(2012, dt1.year); |
683 Expect.equals(2, dt1.month); | 683 Expect.equals(2, dt1.month); |
684 Expect.equals(27, dt1.day); | 684 Expect.equals(27, dt1.day); |
685 Expect.equals(13, dt1.hour); | 685 Expect.equals(13, dt1.hour); |
686 Expect.equals(27, dt1.minute); | 686 Expect.equals(27, dt1.minute); |
687 Expect.equals(0, dt1.second); | 687 Expect.equals(0, dt1.second); |
688 Expect.equals(0, dt1.millisecond); | 688 Expect.equals(0, dt1.millisecond); |
689 Expect.equals(false, dt1.isUtc); | 689 Expect.equals(false, dt1.isUtc); |
690 dt1 = new Date.fromString("2012-02-27 13:27:00.423z"); | 690 dt1 = new DateTime.fromString("2012-02-27 13:27:00.423z"); |
691 Expect.equals(2012, dt1.year); | 691 Expect.equals(2012, dt1.year); |
692 Expect.equals(2, dt1.month); | 692 Expect.equals(2, dt1.month); |
693 Expect.equals(27, dt1.day); | 693 Expect.equals(27, dt1.day); |
694 Expect.equals(13, dt1.hour); | 694 Expect.equals(13, dt1.hour); |
695 Expect.equals(27, dt1.minute); | 695 Expect.equals(27, dt1.minute); |
696 Expect.equals(0, dt1.second); | 696 Expect.equals(0, dt1.second); |
697 Expect.equals(423, dt1.millisecond); | 697 Expect.equals(423, dt1.millisecond); |
698 Expect.equals(true, dt1.isUtc); | 698 Expect.equals(true, dt1.isUtc); |
699 dt1 = new Date.fromString("20120227 13:27:00"); | 699 dt1 = new DateTime.fromString("20120227 13:27:00"); |
700 Expect.equals(2012, dt1.year); | 700 Expect.equals(2012, dt1.year); |
701 Expect.equals(2, dt1.month); | 701 Expect.equals(2, dt1.month); |
702 Expect.equals(27, dt1.day); | 702 Expect.equals(27, dt1.day); |
703 Expect.equals(13, dt1.hour); | 703 Expect.equals(13, dt1.hour); |
704 Expect.equals(27, dt1.minute); | 704 Expect.equals(27, dt1.minute); |
705 Expect.equals(0, dt1.second); | 705 Expect.equals(0, dt1.second); |
706 Expect.equals(0, dt1.millisecond); | 706 Expect.equals(0, dt1.millisecond); |
707 Expect.equals(false, dt1.isUtc); | 707 Expect.equals(false, dt1.isUtc); |
708 dt1 = new Date.fromString("20120227T132700"); | 708 dt1 = new DateTime.fromString("20120227T132700"); |
709 Expect.equals(2012, dt1.year); | 709 Expect.equals(2012, dt1.year); |
710 Expect.equals(2, dt1.month); | 710 Expect.equals(2, dt1.month); |
711 Expect.equals(27, dt1.day); | 711 Expect.equals(27, dt1.day); |
712 Expect.equals(13, dt1.hour); | 712 Expect.equals(13, dt1.hour); |
713 Expect.equals(27, dt1.minute); | 713 Expect.equals(27, dt1.minute); |
714 Expect.equals(0, dt1.second); | 714 Expect.equals(0, dt1.second); |
715 Expect.equals(0, dt1.millisecond); | 715 Expect.equals(0, dt1.millisecond); |
716 Expect.equals(false, dt1.isUtc); | 716 Expect.equals(false, dt1.isUtc); |
717 dt1 = new Date.fromString("20120227"); | 717 dt1 = new DateTime.fromString("20120227"); |
718 Expect.equals(2012, dt1.year); | 718 Expect.equals(2012, dt1.year); |
719 Expect.equals(2, dt1.month); | 719 Expect.equals(2, dt1.month); |
720 Expect.equals(27, dt1.day); | 720 Expect.equals(27, dt1.day); |
721 Expect.equals(0, dt1.hour); | 721 Expect.equals(0, dt1.hour); |
722 Expect.equals(0, dt1.minute); | 722 Expect.equals(0, dt1.minute); |
723 Expect.equals(0, dt1.second); | 723 Expect.equals(0, dt1.second); |
724 Expect.equals(0, dt1.millisecond); | 724 Expect.equals(0, dt1.millisecond); |
725 Expect.equals(false, dt1.isUtc); | 725 Expect.equals(false, dt1.isUtc); |
726 dt1 = new Date.fromString("2012-02-27T14Z"); | 726 dt1 = new DateTime.fromString("2012-02-27T14Z"); |
727 Expect.equals(2012, dt1.year); | 727 Expect.equals(2012, dt1.year); |
728 Expect.equals(2, dt1.month); | 728 Expect.equals(2, dt1.month); |
729 Expect.equals(27, dt1.day); | 729 Expect.equals(27, dt1.day); |
730 Expect.equals(14, dt1.hour); | 730 Expect.equals(14, dt1.hour); |
731 Expect.equals(0, dt1.minute); | 731 Expect.equals(0, dt1.minute); |
732 Expect.equals(0, dt1.second); | 732 Expect.equals(0, dt1.second); |
733 Expect.equals(0, dt1.millisecond); | 733 Expect.equals(0, dt1.millisecond); |
734 Expect.equals(true, dt1.isUtc); | 734 Expect.equals(true, dt1.isUtc); |
735 dt1 = new Date.fromString("-123450101 00:00:00 Z"); | 735 dt1 = new DateTime.fromString("-123450101 00:00:00 Z"); |
736 Expect.equals(-12345, dt1.year); | 736 Expect.equals(-12345, dt1.year); |
737 Expect.equals(1, dt1.month); | 737 Expect.equals(1, dt1.month); |
738 Expect.equals(1, dt1.day); | 738 Expect.equals(1, dt1.day); |
739 Expect.equals(0, dt1.hour); | 739 Expect.equals(0, dt1.hour); |
740 Expect.equals(0, dt1.minute); | 740 Expect.equals(0, dt1.minute); |
741 Expect.equals(0, dt1.second); | 741 Expect.equals(0, dt1.second); |
742 Expect.equals(0, dt1.millisecond); | 742 Expect.equals(0, dt1.millisecond); |
743 Expect.equals(true, dt1.isUtc); | 743 Expect.equals(true, dt1.isUtc); |
744 // We only support millisecond. If the user supplies more data (the "51" | 744 // We only support millisecond. If the user supplies more data (the "51" |
745 // here), we round. | 745 // here), we round. |
746 // If (eventually) we support more than just millisecond this test could | 746 // If (eventually) we support more than just millisecond this test could |
747 // fail. Please update the test in this case. | 747 // fail. Please update the test in this case. |
748 dt1 = new Date.fromString("1999-01-02 23:59:59.99951"); | 748 dt1 = new DateTime.fromString("1999-01-02 23:59:59.99951"); |
749 Expect.equals(1999, dt1.year); | 749 Expect.equals(1999, dt1.year); |
750 Expect.equals(1, dt1.month); | 750 Expect.equals(1, dt1.month); |
751 Expect.equals(3, dt1.day); | 751 Expect.equals(3, dt1.day); |
752 Expect.equals(0, dt1.hour); | 752 Expect.equals(0, dt1.hour); |
753 Expect.equals(0, dt1.minute); | 753 Expect.equals(0, dt1.minute); |
754 Expect.equals(0, dt1.second); | 754 Expect.equals(0, dt1.second); |
755 Expect.equals(0, dt1.millisecond); | 755 Expect.equals(0, dt1.millisecond); |
756 Expect.equals(false, dt1.isUtc); | 756 Expect.equals(false, dt1.isUtc); |
757 dt1 = new Date.fromString("1999-01-02 23:58:59.99951Z"); | 757 dt1 = new DateTime.fromString("1999-01-02 23:58:59.99951Z"); |
758 Expect.equals(1999, dt1.year); | 758 Expect.equals(1999, dt1.year); |
759 Expect.equals(1, dt1.month); | 759 Expect.equals(1, dt1.month); |
760 Expect.equals(2, dt1.day); | 760 Expect.equals(2, dt1.day); |
761 Expect.equals(23, dt1.hour); | 761 Expect.equals(23, dt1.hour); |
762 Expect.equals(59, dt1.minute); | 762 Expect.equals(59, dt1.minute); |
763 Expect.equals(0, dt1.second); | 763 Expect.equals(0, dt1.second); |
764 Expect.equals(0, dt1.millisecond); | 764 Expect.equals(0, dt1.millisecond); |
765 Expect.equals(true, dt1.isUtc); | 765 Expect.equals(true, dt1.isUtc); |
766 dt1 = new Date.fromString("0009-09-09 09:09:09.009Z"); | 766 dt1 = new DateTime.fromString("0009-09-09 09:09:09.009Z"); |
767 Expect.equals(9, dt1.year); | 767 Expect.equals(9, dt1.year); |
768 Expect.equals(9, dt1.month); | 768 Expect.equals(9, dt1.month); |
769 Expect.equals(9, dt1.day); | 769 Expect.equals(9, dt1.day); |
770 Expect.equals(9, dt1.hour); | 770 Expect.equals(9, dt1.hour); |
771 Expect.equals(9, dt1.minute); | 771 Expect.equals(9, dt1.minute); |
772 Expect.equals(9, dt1.second); | 772 Expect.equals(9, dt1.second); |
773 Expect.equals(9, dt1.millisecond); | 773 Expect.equals(9, dt1.millisecond); |
774 Expect.equals(true, dt1.isUtc); | 774 Expect.equals(true, dt1.isUtc); |
775 } | 775 } |
776 | 776 |
777 static void testWeekday() { | 777 static void testWeekday() { |
778 // 2011-10-06 is Summertime. | 778 // 2011-10-06 is Summertime. |
779 var d = new Date(2011, 10, 6, 0, 45, 37, 0); | 779 var d = new DateTime(2011, 10, 6, 0, 45, 37, 0); |
780 Expect.equals(Date.THU, d.weekday); | 780 Expect.equals(DateTime.THU, d.weekday); |
781 d = new Date.utc(2011, 10, 6, 0, 45, 37, 0); | 781 d = new DateTime.utc(2011, 10, 6, 0, 45, 37, 0); |
782 Expect.equals(Date.THU, d.weekday); | 782 Expect.equals(DateTime.THU, d.weekday); |
783 d = new Date(2011, 10, 5, 23, 45, 37, 0); | 783 d = new DateTime(2011, 10, 5, 23, 45, 37, 0); |
784 Expect.equals(Date.WED, d.weekday); | 784 Expect.equals(DateTime.WED, d.weekday); |
785 d = new Date.utc(2011, 10, 5, 23, 45, 37, 0); | 785 d = new DateTime.utc(2011, 10, 5, 23, 45, 37, 0); |
786 Expect.equals(Date.WED, d.weekday); | 786 Expect.equals(DateTime.WED, d.weekday); |
787 // 1970-01-01 is Wintertime. | 787 // 1970-01-01 is Wintertime. |
788 d = new Date(1970, 1, 1, 0, 0, 0, 1); | 788 d = new DateTime(1970, 1, 1, 0, 0, 0, 1); |
789 Expect.equals(Date.THU, d.weekday); | 789 Expect.equals(DateTime.THU, d.weekday); |
790 d = new Date.utc(1970, 1, 1, 0, 0, 0, 1); | 790 d = new DateTime.utc(1970, 1, 1, 0, 0, 0, 1); |
791 Expect.equals(Date.THU, d.weekday); | 791 Expect.equals(DateTime.THU, d.weekday); |
792 d = new Date.utc(1969, 12, 31, 23, 59, 59, 999); | 792 d = new DateTime.utc(1969, 12, 31, 23, 59, 59, 999); |
793 Expect.equals(Date.WED, d.weekday); | 793 Expect.equals(DateTime.WED, d.weekday); |
794 d = new Date(1969, 12, 31, 23, 59, 59, 999); | 794 d = new DateTime(1969, 12, 31, 23, 59, 59, 999); |
795 Expect.equals(Date.WED, d.weekday); | 795 Expect.equals(DateTime.WED, d.weekday); |
796 d = new Date(2011, 10, 4, 23, 45, 37, 0); | 796 d = new DateTime(2011, 10, 4, 23, 45, 37, 0); |
797 Expect.equals(Date.TUE, d.weekday); | 797 Expect.equals(DateTime.TUE, d.weekday); |
798 d = new Date(2011, 10, 3, 23, 45, 37, 0); | 798 d = new DateTime(2011, 10, 3, 23, 45, 37, 0); |
799 Expect.equals(Date.MON, d.weekday); | 799 Expect.equals(DateTime.MON, d.weekday); |
800 d = new Date(2011, 10, 2, 23, 45, 37, 0); | 800 d = new DateTime(2011, 10, 2, 23, 45, 37, 0); |
801 Expect.equals(Date.SUN, d.weekday); | 801 Expect.equals(DateTime.SUN, d.weekday); |
802 d = new Date(2011, 10, 1, 23, 45, 37, 0); | 802 d = new DateTime(2011, 10, 1, 23, 45, 37, 0); |
803 Expect.equals(Date.SAT, d.weekday); | 803 Expect.equals(DateTime.SAT, d.weekday); |
804 d = new Date(2011, 9, 30, 23, 45, 37, 0); | 804 d = new DateTime(2011, 9, 30, 23, 45, 37, 0); |
805 Expect.equals(Date.FRI, d.weekday); | 805 Expect.equals(DateTime.FRI, d.weekday); |
806 } | 806 } |
807 | 807 |
808 static void testMain() { | 808 static void testMain() { |
809 testNow(); | 809 testNow(); |
810 testValue(); | 810 testValue(); |
811 testConstructors(); | 811 testConstructors(); |
812 testUTCGetters(); | 812 testUTCGetters(); |
813 testLocalGetters(); | 813 testLocalGetters(); |
814 testChangeTimeZone(); | 814 testChangeTimeZone(); |
815 testSubAdd(); | 815 testSubAdd(); |
816 testUnderflowAndOverflow(); | 816 testUnderflowAndOverflow(); |
817 testDateStrings(); | 817 testDateStrings(); |
818 testEquivalentYears(); | 818 testEquivalentYears(); |
819 testExtremes(); | 819 testExtremes(); |
820 testFarAwayDates(); | 820 testFarAwayDates(); |
821 testWeekday(); | 821 testWeekday(); |
822 } | 822 } |
823 } | 823 } |
824 | 824 |
825 main() { | 825 main() { |
826 DateTest.testMain(); | 826 DateTest.testMain(); |
827 } | 827 } |
OLD | NEW |