Javaプログラミング学習サイト ゆるゆるプログラミング

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

■広告

 

 

 

 

 

スッキリわかるJava入門第3版 [ 中山清喬 ]

価格:2,860円
(2021/6/18 14:32時点)
感想(6件)

 

 

 

 

Topへ