Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أساسيات LocalDate

جزء من قسم Logic & Flow في رحلة 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-25
  • past: 2024-03-10
challenge icon

التحدي

سهل

قم بإنشاء طريقة (method) تسمى 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow

تدرّب بنفسك: مترجم Java عبر الإنترنت