أساسيات 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):
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]"
ورقة مرجعية
يمثل LocalDate تاريخاً بدون وقت أو منطقة زمنية في Java.
إنشاء تاريخ اليوم:
LocalDate today = LocalDate.now();إنشاء تاريخ محدد:
LocalDate date = LocalDate.of(2024, 3, 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"إضافة أو طرح أيام:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10جرّب بنفسك
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));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات4HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمالمسح والنسخملخص - HashSet10التاريخ والوقت
أساسيات LocalDateعمليات LocalTimeاستخدام LocalDateTimePeriod و Durationتنسيق التاريخالتعامل مع المناطق الزمنية2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم