Duration.plus în Java

Adună două durate și returnează o durată nouă; există și minus, plusMinutes și multipliedBy.

Sintaxă
Duration plus(Duration alta)
Duration minus(Duration alta)
Duration plusMinutes(long minute)
Duration multipliedBy(long factor)

Ce face Duration.plus

a.plus(b) returnează o durată nouă egală cu suma celor două. Pentru că Duration este imutabilă, rezultatul trebuie salvat: total = total.plus(d). Pornești de obicei de la Duration.ZERO.

Metode înrudite: minus, plusHours, plusMinutes, plusSeconds, multipliedBy, dividedBy și negated. O durată se poate aduna și la o dată cu oră: moment.plus(durata).

Parametri

Parametru Descriere
alta Durata de adunat.

Ce returnează

Un Duration nou.

Exemple

Exemplul 1: Timpul total al unei rețete

import java.time.Duration;

public class Main {
    public static void main(String[] args) {
        Duration pregatire = Duration.ofMinutes(25);
        Duration dospire = Duration.ofHours(1).plusMinutes(30);
        Duration coacere = Duration.ofMinutes(45);
        Duration total = pregatire.plus(dospire).plus(coacere);
        System.out.println("Total: " + total);
        System.out.println("Pentru două tăvi pe rând: " + coacere.multipliedBy(2).plus(pregatire).plus(dospire));
        System.out.println("Fără dospire: " + total.minus(dospire));
    }
}

Rezultat

Total: PT2H40M
Pentru două tăvi pe rând: PT3H25M
Fără dospire: PT1H10M

Exemplul 2: Sfârșitul unei ture

import java.time.Duration;
import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        LocalDateTime start = LocalDateTime.of(2026, 10, 19, 22, 0);
        Duration tura = Duration.ofHours(8);
        Duration pauze = Duration.ofMinutes(15).multipliedBy(2);
        LocalDateTime sfarsit = start.plus(tura.plus(pauze));
        System.out.println("Tura de noapte: " + start + " -> " + sfarsit);
    }
}

Rezultat

Tura de noapte: 2026-10-19T22:00 -> 2026-10-20T06:30

Greșeli frecvente

  • Scrii total.plus(d); într-o buclă fără atribuire. total rămâne PT0S.

Comenzi înrudite

  • Duration: O cantitate de timp exactă, în secunde și nanosecunde (1 oră și 30 de minute); se afișează ca PT1H30M.
  • Duration.ofMinutes: Creează o durată dintr-un număr de minute (ofMinutes) sau secunde (ofSeconds); 90 de minute devin PT1H30M.
  • LocalDateTime.plusHours: Returnează o dată cu oră nouă, mutată cu un număr de ore; trecerea peste miezul nopții schimbă și ziua.
  • Duration.between: Calculează timpul exact dintre două momente (ore, minute, secunde); negativ dacă sfârșitul e înaintea startului.