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