1 # 2 # 3 # 4 5 locale ja JP JP 6 new instance jcal 7 new gregorian gcal 8 9 test Default dates 10 # Default for all unset fields 11 # 1970-01-01T00:00:00.000 local time (Gregorian) 12 # which is equivalent to Showa 45. 13 use gcal 14 clear all 15 get millis 16 # get the default milliseconds from the Epoch. It's time zone 17 # dependent. 18 assign $result $defmillis 19 use jcal 20 clear all 21 get millis 22 eval $result == $defmillis 23 check era Showa 24 check datetime 45 Jan 1 0 0 0 25 check millisecond 0 26 27 # If each era is set, then January 1 of each Gan-nen is the 28 # default. 29 clear all 30 set era BeforeMeiji 31 check era BeforeMeiji 32 check datetime 1 Jan 1 0 0 0 33 check millisecond 0 34 35 clear all 36 set era Meiji 37 check era Meiji 38 check datetime 1 Jan 1 0 0 0 39 check millisecond 0 40 41 clear all 42 set era Taisho 43 check era Meiji 44 check datetime 45 Jan 1 0 0 0 45 check millisecond 0 46 47 clear all 48 set era Showa 49 check era Taisho 50 check datetime 15 Jan 1 0 0 0 51 check millisecond 0 52 53 clear all 54 set era Heisei 55 check era Showa 56 check datetime 64 Jan 1 0 0 0 57 check millisecond 0 58 59 clear all 60 set era NewEra 61 check era Heisei 62 check datetime 31 Jan 1 0 0 0 63 check millisecond 0 64 65 # 66 # Field resolution tests 67 # 68 clear all 69 get firstdayofweek 70 # The test cases below assume that the first day of week is 71 # Sunday. So we should make sure it is. 72 eval $result == Sun 73 assign $result $fdow 74 75 test Field resolution: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK 76 set era Showa 77 set year 64 78 set week_of_month 1 79 check day_of_week $fdow 80 check date 64 Jan 1 81 82 clear all 83 set era Showa 84 set year 64 85 set week_of_month 1 86 set day_of_week Thu 87 check era Showa 88 check day_of_week Thu 89 check date 64 Jan 5 90 91 clear all 92 # Heise 1 January and Showa 64 January are the same month. Its 93 # first week should be the same week. (January is the default 94 # month.) 95 set era Heisei 96 set year 1 97 set week_of_month 1 98 check day_of_week $fdow 99 check era Showa 100 check date 64 Jan 1 101 102 # Test aggregation 103 clear all 104 set date Heisei 17 Mar 16 105 set week_of_month 1 106 set day_of_week Tue 107 check date Heisei 17 Mar 1 108 109 clear all 110 set week_of_month 1 111 set date Heisei 17 Mar 16 112 set day_of_week Tue 113 check date Heisei 17 Mar 1 114 115 clear all 116 set day_of_week Tue 117 set date Heisei 17 Mar 16 118 set week_of_month 1 119 check date Heisei 17 Mar 1 120 121 clear all 122 set day_of_week Tue 123 set date Heisei 17 Mar 16 124 set week_of_year 10 125 set week_of_month 1 126 check date Heisei 17 Mar 1 127 128 clear all 129 set day_of_week Tue 130 set date Heisei 17 Mar 16 131 set day_of_year 300 132 set week_of_month 1 133 check date Heisei 17 Mar 1 134 135 test Field resolution: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK 136 clear all 137 set era Meiji 138 set year 45 139 set month Jul 140 set day_of_week_in_month 5 141 set day_of_week Mon 142 check date Meiji 45 Jul 29 143 144 clear all 145 set era Meiji 146 set year 45 147 set month Jul 148 set day_of_week_in_month 4 149 check date Meiji 45 Jul 28 150 151 clear all 152 set era Meiji 153 set year 45 154 set month Jul 155 set day_of_week_in_month 5 156 set day_of_week Tue 157 check date Taisho 1 Jul 30 158 159 clear all 160 set era Taisho 161 set year 1 162 set month Jul 163 set day_of_week_in_month 1 164 set day_of_week Tue 165 check date Meiji 45 Jul 2 166 167 # Test aggregation 168 clear all 169 set date Heisei 17 Mar 16 170 set day_of_week_in_month 1 171 set day_of_week Wed 172 check date Heisei 17 Mar 2 173 174 clear all 175 set day_of_week_in_month 1 176 set date Heisei 17 Mar 16 177 set day_of_week Wed 178 check date Heisei 17 Mar 2 179 180 clear all 181 set day_of_week Wed 182 set date Heisei 17 Mar 16 183 set day_of_week_in_month 1 184 check date Heisei 17 Mar 2 185 186 clear all 187 set day_of_week Wed 188 set date Heisei 17 Mar 16 189 set week_of_month 4 190 set day_of_week_in_month 1 191 check date Heisei 17 Mar 2 192 193 clear all 194 set day_of_week Wed 195 set date Heisei 17 Mar 16 196 set day_of_year 365 197 set day_of_week_in_month 1 198 check date Heisei 17 Mar 2 199 200 clear all 201 set day_of_week Wed 202 set date Heisei 17 Mar 16 203 set week_of_year 50 204 set day_of_week_in_month 1 205 check date Heisei 17 Mar 2 206 207 test Field resolution: YEAR + DAY_OF_YEAR 208 clear all 209 set era Showa 210 set year 64 211 set day_of_year 7 212 check date Showa 64 Jan 7 213 214 clear all 215 set era Showa 216 set year 64 217 set day_of_year 10 218 check date Heisei 1 Jan 10 219 220 clear all 221 set era Showa 222 set year 64 223 check date Showa 64 Jan 1 224 check day_of_year 1 225 226 clear all 227 set era Heisei 228 set year 1 229 set day_of_year 10 230 check date Heisei 1 Jan 17 231 232 clear all 233 set era Heisei 234 set year 1 235 set day_of_year 1 236 check date Heisei 1 Jan 8 237 238 clear all 239 set era Heisei 240 set year 1 241 set day_of_year -1 242 check date Showa 64 Jan 6 243 244 clear all 245 set date Heisei 17 Mar 16 246 set day_of_year 31 247 check date Heisei 17 Jan 31 248 249 clear all 250 set date Heisei 17 Mar 16 251 set week_of_year 50 252 set day_of_week Wed 253 set day_of_year 31 254 check date Heisei 17 Jan 31 255 256 clear all 257 set date Heisei 17 Mar 16 258 set week_of_month 5 259 set day_of_week Wed 260 set day_of_year 31 261 check date Heisei 17 Jan 31 262 263 test Field resolution: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR 264 clear all 265 set era Showa 266 set year 64 267 set week_of_year 1 268 check day_of_week $fdow 269 check date 64 Jan 1 270 271 clear all 272 set era Showa 273 set year 64 274 set week_of_year 1 275 set day_of_week Wed 276 check date Showa 64 Jan 4 277 278 clear all 279 set era Heisei 280 set year 1 281 set week_of_year 1 282 check day_of_week $fdow 283 check date 1 Jan 8 284 285 clear all 286 set date Heisei 17 Mar 16 287 set week_of_year 2 288 set day_of_week Thu 289 check date Heisei 17 Jan 6 290 291 clear all 292 set week_of_year 2 293 set date Heisei 17 Mar 16 294 set day_of_week Thu 295 check date Heisei 17 Jan 6 296 297 clear all 298 set day_of_week Thu 299 set date Heisei 17 Mar 16 300 set week_of_year 2 301 check date Heisei 17 Jan 6 302 303 test zone offsets 304 # Tests here depend on the GMT offset. 305 timezone GMT+09:00 306 new instance cal0900 307 use cal0900 308 clear all 309 set date Heisei 17 Mar 12 310 get millis 311 assign $result $H17Mar12 312 clear all 313 set date Heisei 17 Mar 12 314 set zone_offset 0 315 get millis 316 eval $result - 32400000 # -9 hours 317 eval $result == $H17Mar12 318 319 clear all 320 set date Heisei 17 Mar 12 321 set zone_offset 28800000 # 8 hours 322 set dst_offset 3600000 # 1 hour 323 get millis 324 eval $result == $H17Mar12 325 326 clear all 327 set date Heisei 17 Mar 12 328 set zone_offset 18000000 # 5 hours 329 set dst_offset 14400000 # 4 hours 330 get millis 331 eval $result == $H17Mar12