Ce face LocalDateTime.plusHours
plusHours(n) adună n ore. Dacă se trece de miezul nopții, data avansează automat: 22:00 plus 5 ore este 03:00 a doua zi. Valorile negative scad ore.
Există metode asemănătoare pentru toate unitățile: plusMinutes, plusSeconds, plusDays, plusWeeks, plusMonths și perechile lor minus…. Pentru o durată calculată, plus(Duration) face același lucru.
LocalDateTime nu știe de ora de vară. Dacă aduni ore peste noaptea în care se schimbă ceasul, rezultatul local poate fi cu o oră diferit de realitate; folosește ZonedDateTime în acest caz.
Parametri
| Parametru | Descriere |
|---|---|
ore |
Numărul de ore de adunat. Poate fi negativ. |
Ce returnează
Un LocalDateTime nou.
Exemple
Exemplul 1: Ora de sosire a unei curse de noapte
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime plecare = LocalDateTime.of(2026, 10, 19, 22, 40);
LocalDateTime sosire = plecare.plusHours(6).plusMinutes(35);
System.out.println("Plecare din Iași: " + plecare);
System.out.println("Sosire la Timișoara: " + sosire);
System.out.println("Check-in cu 2 ore înainte: " + plecare.minusHours(2));
}
}
Rezultat
Plecare din Iași: 2026-10-19T22:40
Sosire la Timișoara: 2026-10-20T05:15
Check-in cu 2 ore înainte: 2026-10-19T20:40
Exemplul 2: Parcare plătită pe ore
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime intrare = LocalDateTime.of(2026, 10, 19, 10, 15);
int orePlatite = 3;
LocalDateTime expira = intrare.plusHours(orePlatite);
LocalDateTime acum = LocalDateTime.of(2026, 10, 19, 13, 40);
System.out.println("Biletul expiră la " + expira.toLocalTime());
System.out.println(acum.isAfter(expira) ? "Amendă!" : "Totul e în regulă");
System.out.println("Cost: " + orePlatite * 5 + " lei");
}
}
Rezultat
Biletul expiră la 13:15
Amendă!
Cost: 15 lei
Greșeli frecvente
- Aduni ore unui
LocalDateTimeîn noaptea schimbării orei (ultima duminică din martie sau octombrie) și te aștepți la ora reală. FoloseșteZonedDateTime. - Uiți că rezultatul este un obiect nou și nu-l salvezi.
Comenzi înrudite
LocalTime.plusMinutes: Returnează o oră nouă cu minutele adunate; după 23:59 se reia de la 00:00, fără să schimbe vreo dată.Duration: O cantitate de timp exactă, în secunde și nanosecunde (1 oră și 30 de minute); se afișează ca PT1H30M.LocalDate.plusDays: Returnează o dată nouă mutată cu un număr de zile înainte (plusDays) sau înapoi (minusDays).ZonedDateTime: Data și ora împreună cu fusul orar (Europe/Bucharest); indică un moment exact și știe de ora de vară.