以下のようにデータベースから時間の行を取得しています
TimeWorked
09:05:25
09:30:15
10:15:01
08:19:49
09:17:40
ここで、Java で時間を合計して46:28:10を取得したいと考えています。Calendarクラスを使用して何かを試しましたが、うまくいきませんでした。Javaでこれらの時間を合計する方法
返信ありがとう
プロジェクトで可能であれば、JodaTime とDuration
クラスを使用することをお勧めします。標準の Java Calendar/Date API を使用するよりもはるかに簡単です。
Period クラスを使用した別の例を次に示します。
PeriodFormatter hoursMinutesSecondsFormatter =
new PeriodFormatterBuilder().appendHours().appendSeparator(":")
.appendMinutes().appendSeparator(":").appendSeconds().toFormatter();
Period period1 = hoursMinutesSecondsFormatter.parseMutablePeriod("09:05:25").toPeriod();
Period period2 = hoursMinutesSecondsFormatter.parseMutablePeriod("09:30:15").toPeriod();
System.out.println(period1.plus(period2).toString(hoursMinutesSecondsFormatter));
プリント: 18:35:40
行のループを開始し、ループ内の各行を取得して続行します
int hour = 0;
int minute = 0;
for(<your row loop>) {
String[] rowtime= row[i].split(":");
hour += Integer.parseInt(rowtime[0]);
minute += Integer.parseInt(rowtime[1]);
}
hour += minute / 60;
minute %= 60;
String result = hour + ":" + minute
String[] timeWorked = {"09:05:25", "09:30:15"}
int hours = 0;
int minutes = 0;
int seconds = 0;
for(int i = 0; i < timeWorked.length; i++) {
hours += Integer.parseInt(timeWorked.split(":")[0]);
minutes += Integer.parseInt(timeWorked.split(":")[1]);
seconds += Integer.parseInt(timeWorked.split(":")[2]);
}
// Now you have your hours minutes and seconds all added up and all you have to do is do some math similar to what shreyansh jogi said to calculate in hours minutes and seconds.
parseInt からスローされる可能性のある NumberFormatExceptions をキャッチすることを忘れないでください