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