Ce face LocalDate.plusDays
plusDays(n) adună n zile la dată, iar minusDays(n) le scade. Trecerea peste sfârșitul lunii sau al anului este calculată corect: 30 decembrie plus 5 zile este 4 ianuarie anul următor.
Ambele metode returnează o dată nouă; originalul nu se schimbă. Un număr negativ inversează sensul: plusDays(-3) este același lucru cu minusDays(3). Există și plusWeeks, plusYears și perechile lor minus….
Parametri
| Parametru | Descriere |
|---|---|
zile |
Numărul de zile de adunat sau de scăzut. Poate fi negativ. |
Ce returnează
Un LocalDate nou. Aruncă DateTimeException doar dacă rezultatul iese din intervalul de ani acceptat.
Exemple
Exemplul 1: Termen de plată și data emiterii
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate emitere = LocalDate.of(2026, 12, 20);
LocalDate scadenta = emitere.plusDays(15);
LocalDate reminder = scadenta.minusDays(3);
System.out.println("Factura emisă: " + emitere);
System.out.println("Scadența: " + scadenta);
System.out.println("Trimite reminder: " + reminder);
}
}
Rezultat
Factura emisă: 2026-12-20
Scadența: 2027-01-04
Trimite reminder: 2027-01-01
Exemplul 2: Următoarele zile lucrătoare
Sărim peste sâmbătă și duminică adunând câte o zi și verificând getDayOfWeek().
import java.time.DayOfWeek;
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate zi = LocalDate.of(2026, 10, 22); // joi
int gasite = 0;
while (gasite < 4) {
zi = zi.plusDays(1);
DayOfWeek z = zi.getDayOfWeek();
if (z != DayOfWeek.SATURDAY && z != DayOfWeek.SUNDAY) {
System.out.println(zi + " " + z);
gasite++;
}
}
}
}
Rezultat
2026-10-23 FRIDAY
2026-10-26 MONDAY
2026-10-27 TUESDAY
2026-10-28 WEDNESDAY
Exemplul 3: Ultimele 7 zile
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate azi = LocalDate.of(2026, 3, 3);
for (int i = 6; i >= 0; i--) {
System.out.print(azi.minusDays(i).getDayOfMonth() + " ");
}
System.out.println();
System.out.println("Acum o săptămână: " + azi.minusDays(7));
}
}
Rezultat
25 26 27 28 1 2 3
Acum o săptămână: 2026-02-24
Greșeli frecvente
- Scrii
data.plusDays(1);fără atribuire și te aștepți cadatasă se schimbe. - Aduni zile ca să obții „peste o lună” (
plusDays(30)). Lunile au 28-31 de zile; pentru luni foloseșteplusMonths.
Comenzi înrudite
LocalDate.plusMonths: Adaugă un număr de luni; dacă ziua nu există în luna rezultată, se folosește ultima zi a acelei luni.LocalDate.getDayOfWeek: Returnează ziua săptămânii pentru dată, ca valoare a enumerării DayOfWeek (MONDAY … SUNDAY).Period: O perioadă de calendar în ani, luni și zile (P1Y2M3D); se adună la date ținând cont de lungimea lunilor.ChronoUnit: Enumerarea unităților de timp (DAYS, MONTHS, HOURS…); ChronoUnit.DAYS.between(a, b) numără zilele dintre două date.