学習雑記 JAVA24

Calendarクラスを使ってみた。

返されるフィールド値の値などが最初は混乱するが、何故0から始まるかなどは単純な計算に都合が良いことだけは理解した。

使いこなすべく、もう少しこれらで遊びたい。

説明
AM_PM HOUR が正午より前であるか後であるか。AM(0) PM(1)
DATE 月の日を示す。
DAY_OF_MONTH 月の日を示す。
DAY_OF_WEEK 曜日を示す。このフィールドの値は1から7で、SUNDAY(1)、MONDAY(2)、TUESDAY(3)、WEDNESDAY(4)、THURSDAY(5)、FRIDAY(6)、SATURDAY(7) になる
DAY_OF_WEEK_IN_MONTH 現在の月の何度目の曜日かを示す。
DAY_OF_YEAR 現在の年の何日目かを示す。
ERA ユリウス暦の AD または BC などの年代を示す。
HOUR 午前または午後の何時かを示す。12 時間制 (0 ~ 11) で,正午および真夜中は、12 ではなく 0 で表される
HOUR_OF_DAY 時刻を示す。
MILLISECOND ミリ秒を示す。
MINUTE 分を示す。
MONTH 月を示すフィールド値。このフィールドの値は0から11で、JANUARY(0), FEBRUARY(1), MARCH(2), APRIL(3), MAY(4), JUNE(5), JULY(6), AUGUST(7), SEPTEMBER(8), OCTOBER(9), NOVEMBER(10), DECEMBER(11)になる点に注意が必要
SECOND 秒を示す。
WEEK_OF_MONTH 現在の月の何週目かを示す。
WEEK_OF_YEAR 現在の年の何週目かを示す。
YEAR 年を示すフィールド値。
ZONE_OFFSET GMT から直接計算したオフセットをミリ秒単位で示す。



public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Calendar cal = Calendar.getInstance();
int y = sc.nextInt();
int m = sc.nextInt() - 1; //月のフィールド値は0-11のため、読み取った実際の月−1を値に
int d = sc.nextInt();
// cal.set(y, m, d);

cal.set(Calendar.YEAR, y);
cal.set(Calendar.MONTH, m);
cal.set(Calendar.DATE, d);
// チェック
       // System.out.println(cal.get(Calendar.YEAR) + " " + cal.get(Calendar.MONTH) + " " + cal.get(Calendar.DATE));

String[] week_days = {"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"};
int index = cal.get(Calendar.DAY_OF_WEEK) - 1; //曜日は1-7の値で管理するため
System.out.println(week_days[index]);

// switch(cal.get(Calendar.DAY_OF_WEEK)) {
// case 1:
// System.out.println("日曜日");
// break;
// case 2:
// System.out.println("月曜日");
// break;
// case 3:
// System.out.println("火曜日");
// break;
// case 4:
// System.out.println("水曜日");
// break;
// case 5:
// System.out.println("木曜日");
// break;
// case 6:
// System.out.println("金曜日");
// break;
// case 7:
// System.out.println("土曜日");
// break;
// }
}
}