1

2 つの時間の差である Time オブジェクトの ResultSet があります。それらは分から秒の範囲です。たとえば、「00:01:12」または「00:00:22」です。

これらの java.sql.time 値を合計して時間の合計にするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2
public Date sumDates(String[] dateStrings, DateFormat df) {
    int secs=0, mins=0, hrs=0;
    Calendar calendar = Calendar.getInstance();
    for (int i=0; i<dateStrings.length; i++) {
        String dateString = dateStrings[i];
        Date date = (Date) df.parse(dateString);
        calendar.setTime(date);
        secs += calendar.get(Calendar.SECOND);
        mins += calendar.get(Calendar.MINUTE);
        hrs += calendar.get(Calendar.HOUR);
    }
    calendar.set(0, 0, 0, hrs, mins, secs);
    return calendar.getTime();
}

使用例:

String[] dateStrings = { "00:01:12", "00:00:22" };
DateFormat df = new SimpleDateFormat("hh:mm:ss");
Date total = sumDates(dateStrings, df);
System.out.println(df.format(total)); //output: 00:01:34
于 2012-04-17T23:08:36.287 に答える
0

java.sql.Time は、期間ではなく時点を表すように設計されているため、そのクラスのオブジェクトを直接計算することはできません。いくつかの RDBMS は区別を提供するため、Duration の java.sql 類似物がないことに少し驚いています。とにかく、次のような(半疑似)コードを使用して、いつでも手動で実行できます。

int totalSeconds = 0;
for (java.sql.Time s : myResultSet) {
    totalSeconds += s.getHours()*3600 + s.getMinutes()*60 + s.getSeconds();
}
于 2012-04-17T23:05:11.483 に答える