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
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
Nie ma czegoś takiego jak dwudziesta piąta godzina dnia. Możesz co najwyżej zliczyć sumę godzin.
czyli muszę zliczyć sumę godzin a potem wpisać do stringa ? Myślałem, że na to jest jakaś metoda
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.
Ja myślę że chodzi po prostu o zsumowanie kilku czasów, np. 15h25m + 10h = 25h25m
Do przechowywania "delty" czasowej jest klasa http://joda-time.sourceforge.net/apidocs/org/joda/time/Duration.html
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();
}
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
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?