もう少し、落ち着いて要件を正しく伝えられませんか。(以下、あげ足取りではありませんが)
Calendarクラスで10時から18時30分の時間差を計算したい
わかる。
時間同士の計算でaddは使いますか?
意味が、もうわからない。(時間差を求めるのにaddを使いますか?ということ?)
また、時間と分をsetを使って値を代入しますか?
時間差を計算したい話と、つながりがわからない。。。
java
1Calendar calendar = Calendar.getInstance();
2 calendar.set(10, 00);
3
4Calendar kalendar = Calendar.getInstance();
5 kalendar.set(18, 30);
このコードがすでにひどい。
とても、APIを読んだとは思えない。
元の質問から、10時と、18時30分を設定したいのだと推測しますが。
結果的に、質問としては、以下の2つをしたいのだろうと推測します。
- Calendarに任意の時間、分を設定する方法
- 2つのCalendarの時間差を取得する方法
Calendarに任意の時間、分を設定する方法
APIにある通り、setを使いますが最初の引数は、
field - 指定されたカレンダ・フィールド。
です。
java
1 Calendar now = Calendar.getInstance();
2 System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm").format(now.getTime()));
3
4 // 時間の設定
5 now.set(Calendar.HOUR_OF_DAY, 10);
6 now.set(Calendar.MINUTE, 0);
7
8 System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm").format(now.getTime()));
9
2つのCalendarの時間差を取得する方法
Calendarでなく、LocalDateTimeの方がいいと思うのですが・・・
java
1 Calendar am1000 = Calendar.getInstance();
2 am1000.set(Calendar.HOUR_OF_DAY, 10);
3 am1000.set(Calendar.MINUTE, 0);
4
5 Calendar pm0630 = Calendar.getInstance();
6 pm0630.set(Calendar.HOUR_OF_DAY, 18);
7 pm0630.set(Calendar.MINUTE, 30);
8
9 Duration duration = Duration.between(am1000.getTime().toInstant(), pm0630.getTime().toInstant());
10 long diff = TimeUnit.MINUTES.convert(duration.getSeconds(), TimeUnit.SECONDS);
11
12 System.out.println(diff); // 510