LocalDateTime.plusHours în Java

Returnează o dată cu oră nouă, mutată cu un număr de ore; trecerea peste miezul nopții schimbă și ziua.

Sintaxă
LocalDateTime plusHours(long ore)
LocalDateTime plusMinutes(long minute)
LocalDateTime minusHours(long ore)

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ște ZonedDateTime.
  • 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ă.