השוואת שתי תאריכים

Java:
השוואת שתי תאריכים

איך לעשות:

בואו נראה כמה קוד Java שמשווים תאריכים תוך שימוש ב-java.time.LocalDate.

import java.time.LocalDate;
import java.time.Period;

public class DatesComparison {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2023, 5, 15);
        LocalDate date2 = LocalDate.now();

        // בדיקה איזה תאריך מוקדם יותר
        if (date1.isBefore(date2)) {
            System.out.println("date1 is before date2");
        } else if (date1.isAfter(date2)) {
            System.out.println("date1 is after date2");
        } else {
            System.out.println("date1 is equal to date2");
        }

        // חישוב ההפרש בין התאריכים
        Period period = Period.between(date1, date2);
        System.out.println("Years: " + period.getYears() + 
                           ", Months: " + period.getMonths() + 
                           ", Days: " + period.getDays());
    }
}

פלט משוער (תלוי בתאריך הנוכחי):

date1 is after date2
Years: 0, Months: 1, Days: 15

ניתוח עמוק:

לפני Java 8, היינו משתמשים בjava.util.Date וjava.util.Calendar, אבל הם לא היו אינטואיטיביים וידידותיים. מאז Java 8, java.time.* (JSR-310) הם הפתרון המועדף, שנותן דרך נוחה ומדויקת לעבוד עם תאריכים וזמנים. תוספת הjava.time.LocalDate מיועדת לתאריך בלבד, ללא זמן או אזור זמן, שמועיל להשוואה פשוטה כמו בדוגמא למעלה.

אלטרנטיבות כוללות ספריות חיצוניות כמו Joda-Time, שימשה כהשראה לjava.time ועדיין משמשת בפרויקטים קודמים. עם התקדמות הזמן והדורות של ה-Java, התמיכה בפיצ’רים חדשים יותר ב-java.time הופכת אותה לאופציה המועדפת.

ראה גם: