יסודות LocalDate
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 54 מתוך 59.
LocalDate ב-Java מייצג תאריך ללא שעה או אזור זמן. משתמשים בו לעבודה עם תאריכים כמו ימי הולדת, חגים או לוחות זמנים.
יוצרים את התאריך של היום:
LocalDate today = LocalDate.now();יצירת תאריך מסוים:
LocalDate date = LocalDate.of(2024, 3, 15);לאחר ביצוע הקוד שלמעלה, date מכיל: 2024-03-15
קבל חלקים שונים של תאריך:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"נתח תאריך מתוך String:
LocalDate date = LocalDate.parse("2024-03-15"); // פורמט: "yyyy-MM-dd"חשוב: אם פורמט המחרוזת לא תקין, parse() זורקת DateTimeParseException. השתמשו ב-try-catch כדי לטפל בזה:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}הוסיפו או החסירו ימים:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10לאחר הרצת הקוד שלמעלה:
future: 2024-03-25past: 2024-03-10
אתגר
קלצרו מתודה בשם processDate שמקבלת שלושה ארגומנטים:
- מחרוזת (
dateStr) בפורמט "yyyy-MM-dd" - מספר שלם (
days) להוספה או לחיסור - מחרוזת (
operation) שערכה הוא "add" או "subtract"
המתודה צריכה:
- לנתח את מחרוזת התאריך שהוזנה
- להוסיף או לחסר את מספר הימים שצוין
- להחזיר מידע מעוצב על התוצאה
ההודעות שיוחזרו צריכות להיות:
- אם פורמט התאריך אינו תקין: להחזיר "Invalid date format"
- אם הפעולה אינה תקינה: להחזיר "Invalid operation"
- במקרה של הצלחה: להחזיר "Original: [date], New: [new_date], Day of week: [day_name]", כאשר [day_name] הוא היום בשבוע של התאריך החדש, באותיות גדולות (לדוגמה,
WEDNESDAY)
נסו בעצמכם
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDate(String dateStr, int days, String operation) {
// כתבו את הקוד שלכם כאן
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
int days = Integer.parseInt(scanner.nextLine());
String operation = scanner.nextLine();
System.out.println(processDate(dateStr, days, operation));
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכים4HashSet חלק 1
מהו HashSet?הוספת איברהסרת איברבדיקה אם איבר קייםבדיקת ריקנות וגודלניקוי ושכפולסיכום - HashSet10תאריך ושעה
יסודות LocalDateפעולות LocalTimeשימוש ב־LocalDateTimeתקופה ומשכי זמןעיצוב תאריכיםטיפול באזורי זמןתרגלו בעצמכם: קומפיילר Java אונליין