年齢算出
年齢を算出するために Ageクラスが準備されています。
学齢
以下の例は、2017年度4月に小学校へ入学する児童の年齢です(満6歳が対象児童)。
import ajd4jp.*; import ajd4jp.format.*; public class Test { public static void main(String[] argv) throws Exception { AJD[] ajd = new AJD[] { new AJD(2011, 3, 31), new AJD(2011, 4, 1), new AJD(2011, 4, 2) }; AJD school = new AJD(2017, 3, 31); System.out.println("誕生日\t\t学齢\t年齢(" + Formats.DATE.toString(school) + "時点)" ); for (int i = 0; i < 3; i++ ) { Age age = new Age(ajd[i]); System.out.println( Formats.DATE.toString(ajd[i]) + "\t" + "満" + age.getAge(Age.Reckoning.DAY, school) + "歳\t" + "満" + age.getAge(Age.Reckoning.TIME, school) + "歳" ); } } }
出力例
誕生日 学齢 年齢(2017/03/31時点) 2011/03/31 満6歳 満6歳 2011/04/01 満6歳 満5歳 2011/04/02 満5歳 満5歳
3/31生まれ、4/1生まれが満6歳(学齢)で入学対象です。4/2生まれは翌2018年度入学です。
※満6歳となった日以降の最初の4/1が入学日。
世間一般の「年齢」は、Age.Reckoning.TIME を引数として得たものです。誕生日の当日に加齢します。
一方、法律に定める加齢タイミングは誕生日の前日に加齢します。上の例では「学齢」で Age.Reckoning.DAY 引数で得たものです。
法律を拠所とするものは、入学年度・年金受給発生月等ありますが、前日に加齢します。
厄年
以下は、数え年を得る例です。
import ajd4jp.*; import ajd4jp.format.*; public class Test { public static void main(String[] argv) throws AJDException { // 数え年で25歳、42歳、61歳が男性の本厄 Age age = new Age(new AJD(1976, 4, 1)); System.out.println(Formats.DATE.toString(age.getDate(Age.Reckoning.ASIA_SOLAR, 25))); System.out.println(Formats.DATE.toString(age.getDate(Age.Reckoning.ASIA_SOLAR, 42))); System.out.println(Formats.DATE.toString(age.getDate(Age.Reckoning.ASIA_SOLAR, 61))); } }
出力例
2000/01/01 2017/01/01 2036/01/01
数え年は生まれた瞬間が1歳、一律1/1に加齢します。誕生日は関係しません。