Period وحساب التواريخ
أضيفوا التواريخ واطرحوها
Period وحساب التواريخ درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.
مقادير مبنية على التاريخ
بينما تقيس Duration الوقت بالساعات والثواني، تقيس Period المقادير بالسنوات والأشهر والأيام. وهي الأداة المناسبة للحسابات التقويمية مثل الأعمار والمواعيد النهائية.
إضافة الأيام
يوفّر LocalDate الأسلوب plusDays للتحرك إلى الأمام. تذكّروا أن النتيجة قيمة جديدة غير قابلة للتغيير.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 5, 30);
System.out.println(start.plusDays(10));
}
}إضافة الأشهر والسنوات
يحرّك plusMonths وplusYears التاريخ بوحدات أكبر، ويتعاملان بشكل صحيح مع اختلاف أطوال الأشهر.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 1, 31);
System.out.println(start.plusMonths(1));
System.out.println(start.plusYears(2));
}
}طرح التواريخ
استخدموا minusDays وminusWeeks والأساليب المماثلة للتحرك إلى الخلف في الزمن.
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.minusWeeks(2));
}
}إنشاء Period
أنشئوا Period باستخدام of أو أساليب الإنشاء ذات الوحدة الواحدة مثل ofMonths، ثم أضيفوه إلى تاريخ.
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
Period p = Period.of(1, 2, 3);
LocalDate date = LocalDate.of(2026, 1, 1);
System.out.println(date.plus(p));
}
}الفترة بين تاريخين
يقيس Period.between الفاصل بين تاريخين بالسنوات والأشهر والأيام.
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2020, 1, 15);
LocalDate to = LocalDate.of(2026, 5, 30);
Period p = Period.between(from, to);
System.out.println(p.getYears() + "y " + p.getMonths() + "m " + p.getDays() + "d");
}
}حساب العمر
من الاستخدامات الشائعة لـ Period.between حساب عمر الشخص بالسنوات الكاملة.
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
LocalDate birth = LocalDate.of(2000, 6, 15);
LocalDate today = LocalDate.of(2026, 5, 30);
int age = Period.between(birth, today).getYears();
System.out.println(age);
}
}حساب إجمالي الأيام
تقسّم Period الفاصل إلى سنوات وأشهر وأيام. وللحصول على إجمالي واحد لعدد الأيام، استخدموا ChronoUnit.DAYS.between بدلًا من ذلك.
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2026, 1, 1);
LocalDate to = LocalDate.of(2026, 12, 31);
long days = ChronoUnit.DAYS.between(from, to);
System.out.println(days);
}
}مرونة ChronoUnit
يمكن لـ ChronoUnit إجراء العد بوحدات كثيرة: DAYS وWEEKS وMONTHS وYEARS. يعيد كل استدعاء لـ between رقمًا واحدًا.
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2026, 1, 1);
LocalDate to = LocalDate.of(2026, 12, 31);
System.out.println(ChronoUnit.WEEKS.between(from, to));
System.out.println(ChronoUnit.MONTHS.between(from, to));
}
}العثور على يوم الأسبوع التالي
يوفّر الصنف TemporalAdjusters تعديلات ذكية، مثل الانتقال إلى أول يوم من الشهر التالي.
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.with(TemporalAdjusters.firstDayOfNextMonth()));
}
}Period مقابل ChronoUnit
استخدموا Period عندما تريدون تقسيمًا بشريًا إلى سنوات وأشهر وأيام. واستخدموا ChronoUnit.between عندما تريدون إجماليًا واحدًا بوحدة واحدة.
اختبار سريع
اختبروا مهاراتكم في الحساب باستخدام التواريخ.
مراجعة
تعلّمتم الحساب باستخدام التواريخ:
- تحرّك
plusDaysوplusMonthsوplusYearsالتواريخ دون تغييرها - يقيس
Periodالسنوات والأشهر والأيام، وهو مثالي لحساب الأعمار - يقدّم
Period.betweenتقسيمًا بشريًا للفاصل - يقدّم
ChronoUnit.betweenإجماليًا واحدًا بالوحدة المختارة - يتولى
TemporalAdjustersالانتقالات الذكية مثل الانتقال إلى أول يوم من الشهر التالي
الأسئلة الشائعة
هل درس «Period وحساب التواريخ» مجاني؟
نعم — نص درس «Period وحساب التواريخ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.
ماذا ستتعلم في «Period وحساب التواريخ»؟
أضيفوا التواريخ واطرحوها تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «Period وحساب التواريخ»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- LocalDate وLocalTime وLocalDateTime
- Instant وDuration
- Period وحساب التواريخ
- التنسيق باستخدام DateTimeFormatter