実現したいこと
25:00ー24:00を計算した時に60分が求められるようにしたい。
発生している問題・分からないこと
Date型を使って時間の差分(分)を求めたいのですがうまくいかず1日嵌まっています。
該当のソースコード
java
1 DateFormat df1 = new SimpleDateFormat("yyyyMMdd"); 2 String Day = df1.format(reserveDay); 3 data.setDateOfUse(Day + startHour + startMinute + "00"); 4 //利用時間 5 DateFormat df = new SimpleDateFormat("yyyyMMddHHmm"); 6 Date StartTime = null; 7 if(Integer.parseInt(startHour) >= 24){ 8 startHour = String.valueOf(Integer.parseInt(startHour) - 24); 9 } 10 try { 11 StartTime = df.parse(Day + startHour + startMinute); 12 } catch (ParseException e) { 13 e.printStackTrace(); 14 } 15 Date EndTime = null; 16 String endHour = String.valueOf(endHourText.getText()); 17 String endMinute = String.valueOf(endMinuteText.getText()); 18 Date reserveEndDay = new Date(); 19 String EndDay = null; 20 if(Integer.parseInt(endHour) >= 24) { 21 endHour = String.valueOf(Integer.parseInt(endHour) - 24); 22 if(Integer.parseInt(endHour) >= 0 && Integer.parseInt(endMinute) > 0) { 23 Calendar calendar = Calendar.getInstance(); 24 calendar.setTime(reserveDay); 25 calendar.add(Calendar.DAY_OF_MONTH, 1); 26 reserveEndDay = calendar.getTime(); 27 EndDay = df1.format(reserveEndDay); 28 }else{ 29 EndDay = df1.format(reserveDay); 30 } 31 }else{ 32 EndDay = df1.format(reserveDay); 33 } 34 try { 35 EndTime = df.parse(EndDay + endHour + endMinute); 36 } catch (ParseException e) { 37 e.printStackTrace(); 38 } 39 long wkTime = EndTime.getTime() - StartTime.getTime(); 40 int OfUse = (int) (wkTime / 1000 / 60 / 60);
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
reserveDay=20240904
startHour=24
startMinute=00
endHour=25
endMinute=00
とした時に
上記の処理で現在OfUseに60以外が入ってきます。
補足
特になし