Ce face LocalDate.isBefore
a.isBefore(b) este true dacă a este strict înaintea lui b. a.isAfter(b) este true dacă a este strict după b. Pentru aceeași zi, ambele dau false; pentru egalitate folosește isEqual sau equals.
Pentru „între două date, inclusiv capetele” combini condițiile: !d.isBefore(start) && !d.isAfter(sfarsit). LocalDate are și compareTo, folosit la sortare.
Parametri
| Parametru | Descriere |
|---|---|
alta |
Data cu care se compară. Nu poate fi null (aruncă NullPointerException). |
Ce returnează
true sau false.
Exemple
Exemplul 1: Termen depășit sau nu
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate azi = LocalDate.of(2026, 10, 19);
LocalDate[] termene = {LocalDate.of(2026, 10, 10), LocalDate.of(2026, 10, 19), LocalDate.of(2026, 11, 5)};
for (LocalDate t : termene) {
String stare;
if (t.isBefore(azi)) {
stare = "depășit";
} else if (t.isAfter(azi)) {
stare = "în viitor";
} else {
stare = "azi!";
}
System.out.println(t + ": " + stare);
}
}
}
Rezultat
2026-10-10: depășit
2026-10-19: azi!
2026-11-05: în viitor
Exemplul 2: Este data în perioada de vacanță?
„Nu înainte de start și nu după sfârșit” include ambele capete ale intervalului.
import java.time.LocalDate;
public class Main {
static boolean inInterval(LocalDate d, LocalDate start, LocalDate sfarsit) {
return !d.isBefore(start) && !d.isAfter(sfarsit);
}
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 12, 20);
LocalDate sfarsit = LocalDate.of(2027, 1, 7);
for (String s : new String[] {"2026-12-19", "2026-12-20", "2027-01-01", "2027-01-07", "2027-01-08"}) {
LocalDate d = LocalDate.parse(s);
System.out.println(d + " în vacanță? " + inInterval(d, start, sfarsit));
}
}
}
Rezultat
2026-12-19 în vacanță? false
2026-12-20 în vacanță? true
2027-01-01 în vacanță? true
2027-01-07 în vacanță? true
2027-01-08 în vacanță? false
Greșeli frecvente
- Folosești
isBeforecând vrei „înainte sau în aceeași zi”.isBeforeeste strict; scrie!a.isAfter(b). - Compari date cu
<sau>. Operatorii nu funcționează pe obiecte; folosește aceste metode saucompareTo.
Comenzi înrudite
LocalDate: Clasa pentru o dată calendaristică fără oră și fără fus orar: an, lună, zi. Obiectele ei nu se pot modifica.LocalDate.datesUntil: Returnează un Stream cu toate datele de la această dată până la una de sfârșit (fără ea), zi cu zi sau cu un pas.Period.between: Calculează perioada dintre două date în ani, luni și zile; getYears, getMonths, getDays citesc fiecare parte.