Menu
Coddy logo textTech

יסודות 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"

נתח תאריך מתוך מחרוזת:

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-25
  • past: 2024-03-10
challenge icon

אתגר

קל

צרו מתודה בשם processDate שמקבלת שלושה ארגומנטים:

  1. מחרוזת (dateStr) בפורמט "yyyy-MM-dd"
  2. מספר שלם (days) להוספה או לחיסור
  3. מחרוזת (operation) שערכה "add" או "subtract"

המתודה צריכה:

  1. לנתח את מחרוזת תאריך הקלט
  2. להוסיף או לחסר את מספר הימים שצוין
  3. להחזיר מידע מעוצב על התוצאה

ההודעות שיוחזרו צריכות להיות:

  • אם פורמט התאריך אינו תקין: להחזיר "Invalid date format"
  • אם הפעולה אינה תקינה: להחזיר "Invalid operation"
  • במקרה של הצלחה: להחזיר "Original: [date], New: [new_date], Day of week: [day_name]"

נסו בעצמכם

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));
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין