Godzina większa od 24

0

Hej,

Dodaje sobie wiele czasów. Chciałbym aby dodawało to maksymalnie do godziny. Czyli jeżeli przekroczy 2459 to ma wskoczyć 2500. Używam joda time

0

Nie ma czegoś takiego jak dwudziesta piąta godzina dnia. Możesz co najwyżej zliczyć sumę godzin.

0

czyli muszę zliczyć sumę godzin a potem wpisać do stringa ? Myślałem, że na to jest jakaś metoda

2

Co to znaczy "dodaję wiele czasów"?

Chciałbym aby dodawało to maksymalnie do godziny. Czyli jeżeli przekroczy 2459 to ma wskoczyć 2500.

Tego też nie czaje, w sensie zaokrąglało do godziny czy jak?

Czy masz w zmiennej typu LocalTime jakieś czasy trwania czegoś, tak wnioskuję, bo dodajesz i masz sumę 25 (no ale w zmiennej czas to niewykonalne bo czas nie może być 25)?? Ogarnij myśli i napisz to porządnie, czego chcesz.

Jeżeli idę dobrym tropem, to możesz obczaić Duration, zapisywać do bazy jako liczbę i tylko formatować do Stringa żeby wyświetlić z kropeczkami jako czas.

0

Ja myślę że chodzi po prostu o zsumowanie kilku czasów, np. 15h25m + 10h = 25h25m

0

Do przechowywania "delty" czasowej jest klasa http://joda-time.sourceforge.net/apidocs/org/joda/time/Duration.html

0
merid napisał(a):

czyli muszę zliczyć sumę godzin a potem wpisać do stringa ? Myślałem, że na to jest jakaś metoda

Pytanie jest - co chcesz zliczyć? Ponieważ ja tutaj widzę pewien błąd logiczny - sama liczba godzin w kontekście DateTime jest trochę abstrakcyjna i IMO sumowanie jej nie ma sensu.

Jeśli np. masz kilka zadań, które zaczęły się w danym momencie i następnie chcesz zobaczyć, ile godzin zajęło to wykonanie to potrzebujesz:
a) momentu/momentów startu
b) momentów zakończeń

public int countHours(Collection<DateTime> instants){
	DateTime startInstant = getStartInstant();
	return instants.stream().map(i -> Hours.(startInstant, i)).mapToInt(h -> h.getHours()).sum();
}
0

No właśnie korzystam z joda time. Chodzi mi o to, że mamy np. 4 daty:
0044
1222
0001
1833

Widać, że suma przekroczy 24 godziny. No i o to mi chodziło jak to z sumować.

wartek01 napisał(a):
public int countHours(Collection<DateTime> instants){
	DateTime startInstant = getStartInstant();
	return instants.stream().map(i -> Hours.(startInstant, i)).mapToInt(h -> h.getHours()).sum();
}

Tego przykładu kompletnie nie zrozumiałem

0
merid napisał(a):

No właśnie korzystam z joda time. Chodzi mi o to, że mamy np. 4 daty:
0044
1222
0001
1833

Napisz przede wszystkim z czego (z jakiej klasy) korzystasz, żeby przechować te daty. DateTime?

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