2017/05/11 公開
・カレンダー(暦) その2
日付・時刻の表示および操作に使用するCalendarクラスについて説明します。
ここでは、現在の日付と時刻を取得して、各要素(年、月、日、時、分、秒、曜日)毎に取得する方法を紹介しています。
以下は、Calendarクラスを使った、現在の年月日を表示するプログラムです。
CalendarSample1.java ← クリックしてダウンロードページに移動
001: import java.util.Calendar; 002: 003: public class CalendarSample1 { 004: public static void main(String[] args) { 005: int year, month, day; // 年月日 006: 007: // オブジェクトを取得 008: Calendar datenow = Calendar.getInstance(); 009: // 年 010: year = datenow.get( datenow.YEAR ); 011: // 月 012: month = datenow.get( datenow.MONTH ) + 1; 013: // 日 014: day = datenow.get( datenow.DATE ); 015: 016: // 結果の表示 017: System.out.println( year + "年" + month + "月" + day + "日" ); 018: } 019: }
CalendarSample1を実行
C:\talavax\javasample>java CalendarSample1
実行時の年月日を表示します。
CalendarSample1.javaの出力結果の例
2017年5月11日
ここからは、このソースコードを上から順番に解説していきます。
001: import java.util.Calendar;
「java.util」パッケージにあるCalendarクラスを使うための記述です。 この記述により、Calenderクラスが利用できるようになります。
003: public class CalendarSample1 {
クラス名を、CalendarSample1としています。
004: public static void main(String[] args) {
このmainメソッドからプログラムを実行します。
005: int year, month, day; // 年月日
年月日を格納するための変数を宣言しています。年/月/日をそれぞれint型にしています。
007: // オブジェクトを取得 008: Calendar datenow = Calendar.getInstance();
デフォルトのロケール、タイムゾーンを持つCalendarオブジェクトdatenowを生成します。
Calendar.getInstanceメソッド
public static Calendar getInstance()
■デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得 パラメータ なし 戻り値 デフォルトロケールを持つデフォルトタイムゾーンの現在時刻に基づいたCalendar
009: // 年 010: year = datenow.get( datenow.YEAR ); 011: // 月 012: month = datenow.get( datenow.MONTH ) + 1; 013: // 日 014: day = datenow.get( datenow.DATE );
Calendarクラスのgetメソッドで、年/月/日を取得しています。getメソッドに与えるカレンダフィールドの値で、取得する値を変えることができます。このサンプルプログラムでは、YEAR/MONTH/DATEで年月日を取得しています。
12行目で取得した月の値に1を足しているのは、MONTHで取得する値の範囲が0~11の値を返すためです。1~12月にするために1を足しています。
Calendar.getメソッド
public int Calendar get( int field )
■指定されたカレンダフィールドの値を返す パラメータ field : フィールド 戻り値 カレンダフィールド値
型 | フィールド | 概要 |
---|---|---|
static int | ALL_STYLES | 「January」や「Jan」などのすべてのスタイルで名前を示す、getDisplayNames のスタイル指示子 |
static int | AM | 真夜中から正午の前までの時間を示す AM_PM フィールドの値 |
static int | AM_PM | get および set のためのフィールド値で、HOUR が正午より前であるかあとであるかを示す |
static int | APRIL | グレゴリオ暦とユリウス暦の年の 4 番目の月を示す MONTH フィールドの値 |
protected boolean | areFieldsSet | fields[] が現在設定されている時刻と同期をとっている場合は true |
static int | AUGUST | グレゴリオ暦とユリウス暦の年の 8 番目の月を示す MONTH フィールドの値 |
static int | DATE | get および set のためのフィールド値で、月の日を示す |
static int | DAY_OF_MONTH | get および set のためのフィールド値で、月の日を示す |
static int | DAY_OF_WEEK | get および set のためのフィールド値で、曜日を表す |
static int | DAY_OF_WEEK_IN_MONTH | get および set のためのフィールド値で、現在の月の何度目の曜日かを示す |
static int | DAY_OF_YEAR | get および set のためのフィールド値で、現在の年の何日目かを示す |
static int | DECEMBER | グレゴリオ暦とユリウス暦の年の 12 番目の月を示す MONTH フィールドの値 |
static int | DST_OFFSET | get および set のためのフィールド値 |
static int | ERA | get および set のためのフィールド値で、ユリウス暦の AD または BC などの年代を示す |
static int | FEBRUARY | グレゴリオ暦とユリウス暦の年の 2 番目の月を示す MONTH フィールドの値 |
static int | FIELD_COUNT | get および set によって識別される重複しないフィールドの数を示す |
protected int[] | fields | このカレンダで現在設定されている時刻に対するカレンダフィールド値 |
static int | FRIDAY | 金曜日を示す DAY_OF_WEEK フィールドの値 |
static int | HOUR | get および set のためのフィールド値で、午前または午後の何時かを示す |
static int | HOUR_OF_DAY | get および set のためのフィールド値で、時刻を示す |
protected boolean[] | isSet | 指定されたカレンダフィールドがカレンダで設定されているかどうかを示すフラグ |
protected boolean | isTimeSet | time の値が有効である場合は true |
static int | JANUARY | グレゴリオ暦とユリウス暦の年の最初の月を示す MONTH フィールドの値 |
static int | JULY | グレゴリオ暦とユリウス暦の年の 7 番目の月を示す MONTH フィールドの値 |
static int | JUNE | グレゴリオ暦とユリウス暦の年の 6 番目の月を示す MONTH フィールドの値 |
static int | LONG | 「January」のような長い名前を示す getDisplayName および getDisplayNames のスタイル指示子 |
static int | MARCH | グレゴリオ暦とユリウス暦の年の 3 番目の月を示す MONTH フィールドの値 |
static int | MAY | グレゴリオ暦とユリウス暦の年の 5 番目の月を示す MONTH フィールドの値 |
static int | MILLISECOND | get および set のためのフィールド値で、ミリ秒を示す |
static int | MINUTE | get および set のためのフィールド値で、分を示す |
static int | MONDAY | 月曜日を示す DAY_OF_WEEK フィールドの値 |
static int | MONTH | get および set のための、月を示すフィールド値 |
static int | NOVEMBER | グレゴリオ暦とユリウス暦の年の 11 番目の月を示す MONTH フィールドの値 |
static int | OCTOBER | グレゴリオ暦とユリウス暦の年の 10 番目の月を示す MONTH フィールドの値 |
static int | PM | 正午から真夜中の前までの時間を示す AM_PM フィールドの値 |
static int | SATURDAY | 土曜日を示す DAY_OF_WEEK フィールドの値 |
static int | SECOND | get および set のためのフィールド値で、秒を示す |
static int | SEPTEMBER | グレゴリオ暦とユリウス暦の年の 9 番目の月を示す MONTH フィールドの値 |
static int | SHORT | 「Jan」のような短い名前を示す getDisplayName および getDisplayNames のスタイル指示子です |
static int | SUNDAY | 日曜日を示す DAY_OF_WEEK フィールドの値 |
static int | THURSDAY | 木曜日を示す DAY_OF_WEEK フィールドの値 |
protected long | time | このカレンダで現在設定されている時刻 |
static int | TUESDAY | 火曜日を示す DAY_OF_WEEK フィールドの値 |
static int | UNDECIMBER | 13 番目の月を示す MONTH フィールドの値 |
static int | WEDNESDAY | 水曜日を示す DAY_OF_WEEK フィールドの値 |
static int | WEEK_OF_MONTH | get および set のためのフィールド値で、現在の月の何週目かを示す |
static int | WEEK_OF_YEAR | get および set のためのフィールド値で、現在の年の何週目かを示す |
static int | YEAR | get および set のための、年を示すフィールド値 |
static int | ZONE_OFFSET | get および set のためのフィールド値 |
016: // 結果の表示 017: System.out.println( year + "年" + month + "月" + day + "日" );
結果を表示しています。
年月日以外の要素、時間はHOUR、分はMINUTE、秒はSECONDで取得することができます。
■関連コンテンツ
カレンダー(暦) | カレンダー(暦)について解説 |
生年月日から年齢を計算 | 生年月日から年齢を計算する方法を解説 |
時間計測 | 時間を計測する方法を解説 |
現在の日時を取得 | いまの年月日、時分秒? |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告