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

Period و Duration

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 57 من 59.

تمثل Period مقداراً من الوقت يعتمد على التاريخ (سنوات، شهور، أيام)، بينما تمثل Duration مقداراً يعتمد على الوقت (ساعات، دقائق، ثوانٍ).

إنشاء Period:

Period period = Period.of(1, 2, 15);
// سنة واحدة، وشهران، و15 يومًا

إنشاء Duration:

Duration duration = Duration.ofHours(2);
// ساعتان
Duration minutes = Duration.ofMinutes(90);
// 90 دقيقة

بعد تنفيذ الكود أعلاه، يحتوي period على:

P1Y2M15D  // تنسيق ISO-8601
challenge icon

التحدي

سهل

أنشئ طريقة (method) باسم calculateDifference تأخذ أربع وسائط:

  1. سلسلة نصية String (start) بالتنسيق "yyyy-MM-dd HH:mm"
  2. سلسلة نصية String (end) بالتنسيق "yyyy-MM-dd HH:mm"
  3. سلسلة نصية String (unit) إما "period" أو "duration"
  4. سلسلة نصية String (format) إما "full" أو "simple"

يجب أن تقوم الطريقة بما يلي:

  1. حساب الفرق بين تاريخي البداية والنهاية
  2. إرجاع الفرق بالتنسيق المحدد

يجب أن تكون رسائل الإرجاع كالتالي:

  • إذا كانت التواريخ غير صالحة: أرجع "Invalid date format"
  • إذا كانت الوحدة غير صالحة: أرجع "Invalid unit"
  • إذا كان التنسيق غير صالح: أرجع "Invalid format"
  • بالنسبة للفترة (period) بتنسيق "full": "Years: X, Months: Y, Days: Z"
  • بالنسبة للفترة (period) بتنسيق "simple": "XyYmZd"
  • بالنسبة للمدة (duration) بتنسيق "full": "Hours: X, Minutes: Y"
  • بالنسبة للمدة (duration) بتنسيق "simple": "XhYm"

ورقة مرجعية

يمثل Period المقادير المستندة إلى التاريخ (سنوات، شهور، أيام)، بينما يمثل Duration المقادير المستندة إلى الوقت (ساعات، دقائق، ثوانٍ).

إنشاء Period:

Period period = Period.of(1, 2, 15);
// سنة واحدة، شهران، 15 يومًا

إنشاء Duration:

Duration duration = Duration.ofHours(2);
// ساعتان
Duration minutes = Duration.ofMinutes(90);
// 90 دقيقة

يستخدم Period تنسيق ISO-8601:

P1Y2M15D  // سنة واحدة، شهران، 15 يومًا

جرّب بنفسك

import java.util.Scanner;
import java.time.*;
import java.time.format.*;

public class Main {
    public static String calculateDifference(String start, String end, String unit, String format) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String start = scanner.nextLine();
        String end = scanner.nextLine();
        String unit = scanner.nextLine();
        String format = scanner.nextLine();
        
        System.out.println(calculateDifference(start, end, unit, format));
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow