Menu
CoddyTech
flag Ar iconالعربيةdown icon

أساسيات 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]"، حيث [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));
    }
}
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفق التنفيذ

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