Java 6で和暦を使う
プログラミングお役立ちメモ
private String getJpYear(Calendar calendar) { //西暦から和暦を取得する //和暦変換テーブル String warekiTable[][] = { {"18680908","19120729", "明治"}, //明治 {"19120730","19261224", "大正"}, //大正 {"19261225","19890107", "昭和"}, //昭和 {"19890108","99991231", "平成"}}; //平成 //YYYYMMDDの形式に変換する SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String ymd = sdf.format(calendar.getTime()); //暦変換テーブルをサーチする int i = 0; for (i=0; i<warekiTable.length; i++) { //当該西暦が開始年以上で最終年以下ならbreak if (ymd.compareTo(warekiTable[i][0]) >= 0 && ymd.compareTo(warekiTable[i][1]) <= 0) { break; } } //暦テーブルに該当レコードがあれば、和暦年を計算する if (i < warekiTable.length) { int jpYear = calendar.get(Calendar.YEAR) - Integer.parseInt(warekiTable[i][0].substring(0,4)) + 1; //和号+和暦年を返す return warekiTable[i][2] + jpYear; } else { //明治より前は西暦で返す return calendar.get(Calendar.YEAR).toString(); } }