יסודות 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-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]"
נסו בעצמכם
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 אונליין