【Java】Calenderクラスのadd()メソッドを使って日時の計算を行う!
取得した日時の計算を行うには、Calenderクラスのaddメソッドを使用します。
Calenderクラスは抽象クラスなので、地域に合わせた実装クラスを用意することになります。
Javaではグレゴリオ暦、和暦、タイ仏暦が用意されています。
また、 Calenderクラスはロケール、タイムゾーン情報も保持する為、時差を考慮した処理も行えます。
今回はCalenderクラスのaddメソッドを使って以下の場合で日時の計算を行っていきます。
・ 日時の日を計算する場合
・ 日時の月を計算する場合
・ 日時の年を計算する場合
addメソッドとは
addメソッドとはCalendarのオブジェクトが保持している日時に対して、指定した値を加算/減算などの演算をするときに使用します。
addメソッドの書き方
addメソッドの構文は下記となります。
1 2 3 |
import java.util.Calendar; 変数名.add(Calender.対象のフィールド, 数字) |
対象のフィールドに時間の単位を設定し、数字に数値を指定することで日時の計算を行うことができます。
日時の計算を行うサンプルコード
日時の計算を行うサンプルコードを紹介します。
日を計算する場合
日を計算する場合は、対象のフィールドに「DAY_OF_MONTH」を指定し、数字に未来の場合は正の数を、過去の場合は負の数を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// 日時の計算を行う import java.util.Calendar; public class Main { public static void main(String[] args) throws Exception { //Calendarインスタンスを取得 Calendar cld = Calendar.getInstance(); //Insetメソッドで2011年10月1日を指定 cld.set(2019, 9, 1, 0, 0, 0); System.out.println(cld.getTime()); // 1日加算 cld.add(Calendar.DAY_OF_MONTH, 1); System.out.println(cld.getTime()); // 2日減算 cld.add(Calendar.DAY_OF_MONTH, -2); System.out.println(cld.getTime()); } } |
出力結果
Tue Oct 01 00:00:00 UTC 2019
Wed Oct 02 00:00:00 UTC 2019
Mon Sep 30 00:00:00 UTC 2019
月を計算する場合
月を計算する場合は、対象のフィールドに「MONTH」を指定し、数字に未来の場合は正の数を、過去の場合は負の数を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// 日時の計算を行う import java.util.Calendar; public class Main { public static void main(String[] args) throws Exception { //Calendarインスタンスを取得 Calendar cld = Calendar.getInstance(); //Insetメソッドで2011年10月1日を指定 cld.set(2019, 9, 1, 0, 0, 0); System.out.println(cld.getTime()); // 2ヶ月加算 cld.add(Calendar.MONTH, 2); System.out.println(cld.getTime()); // 2ヶ月減算 cld.add(Calendar.MONTH, -2); System.out.println(cld.getTime()); } } |
出力結果
Tue Oct 01 00:00:00 UTC 2019
Sun Dec 01 00:00:00 UTC 2019
Tue Oct 01 00:00:00 UTC 2019
年を計算する場合
年を計算する場合は、対象のフィールドに「YEAR」を指定し、数字に未来の場合は正の数を、過去の場合は負の数を指定します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// 日時の計算を行う import java.util.Calendar; public class Main { public static void main(String[] args) throws Exception { //Calendarインスタンスを取得 Calendar cld = Calendar.getInstance(); //Insetメソッドで2011年10月1日を指定 cld.set(2019, 9, 1, 0, 0, 0); System.out.println(cld.getTime()); // 1年加算 cld.add(Calendar.YEAR, 1); System.out.println(cld.getTime()); // 1年減算 cld.add(Calendar.YEAR, -1); System.out.println(cld.getTime()); } } |
出力結果
Tue Oct 01 00:00:00 UTC 2019
Thu Oct 01 00:00:00 UTC 2020
Tue Oct 01 00:00:00 UTC 2019
今回のポイント
addメソッドで日時の計算を行う
日時の計算を行うにはCalendarクラスのaddメソッドを使用する
• Calendarクラスのaddメソッドで、日時の計算を行う
• addメソッドの第1引数は対象のフィールド、第2引数は数値を指定する
• 第2引数の数値がプラスの場合は未来の日時に、マイナスの場合は過去の日時に変更する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。