# # # 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