dodawanie czasu w formacie HH:mm + HH:mm = HHHH:mm

0

W jaki sposób wygodnie dodawać czas zapisany w formacie godzin? Np. 06:00 (HH:mm) lub 0655 (HHss)

Mam na przykład 3 wartości
08:00
02:30
00:30
Wynikiem powinno być 11:00.

Dodatkowo (nie potrzebuję w tej chwili, ale może na przyszłość się przyda) dobrze by było, gdyby ten format nie był 24h, mianowicie 21:00 + 05:00 nie jest 02:00 tylko 26:00.

0

Operuj na timestamp.

Zmień wszystkie godziny na timestamp, następnie dodaj je do siebie i wynik zamień na godziny (według twojego formatu)

0

Poczytaj o klasach Duration i Period. Jeżeli dodajesz czas, a nie zależy ci na dacie (to różne byty), to będą idealne.

0

Nie wiem czy chodziło Ci o wykorzystanie Duration i Period z Joda Time, ale dzięki Tobie na tą klasę trafiłem, dzięki. Jak by ktoś szukał czegoś podobnego to działa to mniej więcej tak jak widać (kod pewnie do poprawy, bo czasami piszę i jeszcze nie wiem do końca co i dlaczego, ale działa :) )

import org.joda.time.Duration;
import org.joda.time.Period;
import org.joda.time.format.PeriodFormatter;
import org.joda.time.format.PeriodFormatterBuilder;

public String duration(List<String> durationStrings){
        String totalSum;
        
        PeriodFormatter formatter = new PeriodFormatterBuilder()
        .printZeroAlways()
        .minimumPrintedDigits(2)
        .appendHours()
        .appendSeparator( ":" )
        .printZeroAlways()
        .minimumPrintedDigits(2)
        .appendMinutes()
        .toFormatter();
        
        Duration durationSum = Duration.ZERO; 
        for (String durationString : durationStrings) {
            Period period = formatter.parsePeriod(durationString);            
            Duration duration = period.toStandardDuration();
            durationSum = durationSum.plus(duration);
        }
        totalSum = formatter.print(durationSum.toPeriod());
        return totalSum;
    }
0

Nie z joda time, ale z API Javy 8. Praktycznie wyjdzie na jedno.

0

OK, to przepisze to sobie w wolnej chwili.
Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1