البرمجة

كيفية الحصول على جميع التواريخ بين تاريخين في Java 8

يمكنك الحصول على جميع التواريخ بين تاريخين معينين باستخدام Java 8 LocalDate بطرق مختلفة، واحدة منها هي استخدام Stream لإنشاء تدفق من التواريخ. فيما يلي كيف يمكنك القيام بذلك:

java
LocalDate startDate = LocalDate.now(); LocalDate endDate = startDate.plusMonths(1).withDayOfMonth(1); // First day of next month List datesInRange = new ArrayList<>(); for (LocalDate date = startDate; date.isBefore(endDate); date = date.plusDays(1)) { datesInRange.add(date); }

هذا سينشئ قائمة datesInRange تحتوي على جميع التواريخ بين startDate و endDate (باستثناء endDate).

استخدام Stream، يمكنك القيام بذلك كالتالي:

java
LocalDate startDate = LocalDate.now(); LocalDate endDate = startDate.plusMonths(1).withDayOfMonth(1); // First day of next month List datesInRange = startDate.datesUntil(endDate) .collect(Collectors.toList());

يقوم هذا الكود بإنشاء تدفق من التواريخ بين startDate و endDate، ثم يجمعها في قائمة.

في كلتا الحالتين، ستحصل على قائمة تحتوي على جميع التواريخ بين startDate و endDate.

المزيد من المعلومات

بالتأكيد! في Java 8، يمكنك أيضًا استخدام Stream.iterate لإنشاء تدفق من التواريخ بين تاريخين معينين بشكل أكثر تعقيدًا. على سبيل المثال:

java
LocalDate startDate = LocalDate.now(); LocalDate endDate = startDate.plusMonths(1).withDayOfMonth(1); // First day of next month List datesInRange = Stream.iterate(startDate, date -> date.plusDays(1)) .limit(ChronoUnit.DAYS.between(startDate, endDate)) .collect(Collectors.toList());

هذا الكود يستخدم Stream.iterate لإنشاء تدفق من التواريخ بدءًا من startDate وثم إضافة يوم واحد في كل تكرار. يتم حدود عدد التواريخ باستخدام limit ليكون عددها هو عدد الأيام بين startDate و endDate باستخدام ChronoUnit.DAYS.between(startDate, endDate).

باستخدام أي من هذه الطرق، يمكنك الحصول على قائمة تحتوي على جميع التواريخ بين تاريخين معينين في Java 8 LocalDate.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر