Java:
חישוב תאריך בעתיד או בעבר
איך לעשות:
התעלול הוא להשתמש בjava.time
, ספריית הזמן החדשה בJava. קוד לדוגמה:
import java.time.LocalDate;
import java.time.Period;
public class DateCalc {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
Period tenDays = Period.ofDays(10);
LocalDate futureDate = today.plus(tenDays);
LocalDate pastDate = today.minus(tenDays);
System.out.println("Today: " + today);
System.out.println("10 days from now: " + futureDate);
System.out.println("10 days ago: " + pastDate);
}
}
תוצאה:
Today: 2023-04-12
10 days from now: 2023-04-22
10 days ago: 2023-04-02
עיון נוסף
במקום להשתמש בjava.util.Date
הישן והפחות אינטואיטיבי, החל מ-Java 8 יש לנו את java.time
. לפני החידוש הזה, היינו צריכים להילחם עם ה-API הישן של פעולות תאריך וזמן. כיום, ‘java.time’ מכילה אובייקטים כמו LocalDate
, LocalTime
, LocalDateTime
, וZonedDateTime
, שמאפשרים עבודה נוחה עם תאריכים וזמנים בצורה בטיחותית לאזורי זמן. אם אתם צריכים לחשב פערים גדולים של זמן או לעבוד עם זמנים מדויקים למילישניות, עליכם לבחור באובייקט מתאים ב-‘java.time’. לא מומלץ להשתמש במחלקות ישנות אלא אם כן אתם עובדים עם קוד שכבר כתוב ומתבסס עליהן.
גם כדאי לראות
- Java Date Time API
- java.time.LocalDate documentation
- java.time.Period documentation
- Joda-Time - אף על פי שהמסגרת הזו שימשה רבים לפני יצירת
java.time
, היא עדיין רלוונטית לקוד ישן.