blob: b907a378fce7ac28d5f9cfcce07e3f1f231256ed [file] [log] [blame]
#
#
#
locale ja JP JP
new instance jcal
new gregorian gcal
# Use GMT+09:00 for max day of year test which depends on time zone
# offsets.
timezone GMT+09:00
new instance tokyocal
test Make sure that the maximum year value doesn't depent on era
use jcal
# Note: the max year value is as of Reiwa
assign 292276976 $max
clear all
set date Reiwa 1 May 1
get millis
check max year $max
assign $max $maxyear
clear all
set date Heisei 20 May 5
get millis
check max year $maxyear
clear all
set date Showa 35 May 5
get millis
check max year $maxyear
clear all
set date BeforeMeiji 1 Jun 1
get millis
check max year $max
test Max of ERA
use jcal
# Assumption: Reiwa is the current era
check maximum era Reiwa
check leastmax era Reiwa
test Actual max MONTH
use jcal
clear all
set date BeforeMeiji 1867 Jan 31
check actualmax month Dec
# Make sure that the same value is returned after
# normalization.
get millis
check actualmax month Dec
clear all
set date Meiji 45 Mar 31
check actualmax month Jul
get millis
check actualmax month Jul
clear all
set date Taisho 15 June 1
check actualmax month Dec
get millis
check actualmax month Dec
clear all
set date Showa 64 Jan 4
check actualmax month Jan
get millis
check actualmax month Jan
clear all
set date Heisei 31 Jan 4
check actualmax month Apr
get millis
check actualmax month Apr
clear all
set date Reiwa 2 Jan 1
set year $maxyear
check actualmax month Aug
get millis
check actualmax month Aug
clear all
set date 17 Mar 1
check actualmax month Dec
get millis
check actualmax month Dec
test Actual max DAY_OF_YEAR
use jcal
clear all
set date Meiji 1 Dec 31
# Meiji Gan-nen is a leap year.
check actualmax day_of_year 366
check day_of_year 366
clear all
set date Meiji 45 Jan 1
# Meiji 45 or Taishi Gan-nen is also a leap year.
check actualmax day_of_year 211 # 31+29+31+30+31+30+29
set date Meiji 45 Jul 29
check day_of_year 211
set date Taisho 1 Jul 31
get millis
check actualmax day_of_year 155 # 366 - 211
set date Taisho 1 Dec 31
check day_of_year 155
clear all
set date Taisho 15 Sep 23
check actualmax day_of_year 358 # 365 - 7
set date Taisho 15 Dec 24
check day_of_year 358
set date Showa 1 Dec 25
check actualmax day_of_year 7
set date Showa 1 Dec 31
check day_of_year 7
clear all
set date Showa 64 Jan 3
check actualmax day_of_year 7
set date Showa 64 Jan 7
check day_of_year 7
set date Heisei 1 Aug 9
check actualmax day_of_year 358 # 365 - 7
set date Heisei 1 Dec 31
check day_of_year 358
# time zone dependent
use tokyocal
clear all
set date Reiwa $maxyear Jan 1
# the last date of Reiwa is R292276976.08.17T16:12:55.807+0900
check actualmax day_of_year 229 # 31+28+31+30+31+30+31+17
test Actual max WEEK_OF_YEAR
use jcal
clear all
set date Meiji 1 Jan 1
# Meiji gan-nen is a leap year.
check actualmax week_of_year 52
clear all
set date Meiji 45 Jan 1
check actualmax week_of_year 30
set date Taisho 1 July 31
check actualmax week_of_year 22
clear all
set date Taisho 15 Sep 23
check actualmax week_of_year 51
set date Showa 1 Dec 25
check actualmax week_of_year 1
clear all
set date Showa 64 Jan 3
check actualmax week_of_year 1
set date Heisei 1 Aug 9
check actualmax week_of_year 51
clear all
set date Heisei 31 Apr 28
check actualmax week_of_year 17
set date Reiwa 1 Aug 9
check actualmax week_of_year 35
use tokyocal
set date Reiwa $maxyear Jan 1
# the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian).
check actualmax week_of_year 34
test Actual max WEEK_OF_MONTH
use jcal
clear all
set date Meiji 45 Jul 1
check actualmax week_of_month 5
set date Taisho 1 Jul 31
check actualmax week_of_month 5
clear all
set date Taisho 15 Dec 1
check actualmax week_of_month 5
set date Showa 1 Dec 25
check actualmax week_of_month 5
clear all
set date Showa 64 Jan 1
check actualmax week_of_month 5
set date Heisei 1 Jan 8
check actualmax week_of_month 5
clear all
set date Heisei 31 Apr 30
check actualmax week_of_month 5
set date Reiwa 1 May 1
check actualmax week_of_month 5
use tokyocal
set date Reiwa $maxyear Jan 1
# the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian).
check actualmax week_of_month 4
test Actual max DAY_OF_WEEK_IN_MONTH
use jcal
clear all
set date Meiji 45 Jul 1
check actualmax week_of_month 5
set date Taisho 1 Jul 31
check actualmax week_of_month 5
clear all
set date Taisho 15 Dec 1
check actualmax week_of_month 5
set date Showa 1 Dec 25
check actualmax week_of_month 5
clear all
set date Showa 64 Jan 1
check actualmax week_of_month 5
set date Heisei 1 Jan 8
check actualmax week_of_month 5
clear all
set date Heisei 31 Apr 30
check actualmax week_of_month 5
set date Reiwa 1 May 1
check actualmax week_of_month 5
use tokyocal
clear all
set date Reiwa $maxyear Jan 1
# the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian).
check actualmax week_of_month 4
test Actual max YEAR
use jcal
clear all
set date BeforeMeiji 1 Jan 1
check actualmax year 1867
set date Meiji 1 Jan 1
check actualmax year 45
set date Meiji 1 Jul 30
check actualmax year 44
set date Taisho 1 Jul 30
check actualmax year 15
set date Taisho 1 Dec 25
check actualmax year 14
set date Showa 2 Jan 1
check actualmax year 64
set date Showa 1 Dec 25
check actualmax year 63
set date Heisei 1 Jan 7
check actualmax year 64
set date Heisei 1 Aug 18
check actualmax year 30
set date Reiwa 1 Apr 30
check actualmax year 31
# Date/time beyond the last date in the max year.
set date Reiwa 1 Aug 18
check actualmax year 292276975
test Least max YEAR
set date Heisei 17 Mar 1
# Taisho is the shortest era, 14 years.
# (See above actual max YEAR case.)
check leastmax year 14
test Acutual min YEAR
# Get minimum values for comparison
clear all
set era BeforeMeiji
get min year
assign $result $minyear
set date $minyear Dec 31
eval $minyear + 1
assign $result $minyear_plus_one
# BeforeMeiji 1 Dec 31 should exist in the minimum year which
# should be the same value as the getMinimum() value.
set date BeforeMeiji 1 Dec 31
check actualmin year $minyear
# Jan 1 shouldn't exist in the same year. So the actual minimum is
# $minyear + 1.
set date 1 Jan 1
check actualmin year $minyear_plus_one
# 1 should be returned if it's on a date of the last
# year which also exists in the first year of each era.
clear all
set date Meiji 45 Jan 1
check actualmin year 1
clear all
set date Taisho 14 Jul 30
check actualmin year 1
clear all
set date Showa 60 Dec 25
check actualmin year 1
clear all
set date Heisei 17 Jan 8
check actualmin year 1
# 2 should be returned if it's on a date of the last year which
# doesn't exist in the first year of each era. (Meiji is an
# exception.)
clear all
set date Taisho 14 Jul 29
check actualmin year 2
clear all
set date Showa 60 Dec 23
check actualmin year 2
clear all
set date Heisei 17 Jan 7
check actualmin year 2