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

عمليات LocalTime

جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 55 من 59.

يمثل LocalTime في Java وقتًا دون تاريخ أو منطقة زمنية. وهو مفيد للتعامل مع قيم أوقات اليوم مثل ساعات العمل أو الجداول الزمنية.

إنشاء الوقت الحالي:

LocalTime now = LocalTime.now();

أنشئ وقتًا محددًا:

LocalTime time = LocalTime.of(14, 30);
// 14:30 (2:30 مساءً)

بعد تنفيذ الشيفرة أعلاه، يحتوي time على:

14:30

أضف الوقت أو اطرحه:

LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45);  // 15:15
LocalTime earlier = time.minusHours(1);  // 13:30

حلّل وقتًا من سلسلة نصية بالتنسيق HH:mm:

LocalTime time = LocalTime.parse("14:30");  // 14:30

السلسلة التي لا تمثل وقتًا صالحًا، مثل "25:70"، تجعل parse() ترمي الاستثناء DateTimeParseException، وهو الاستثناء نفسه الذي ترميه LocalDate.parse(). التقطه باستخدام try-catch:

try {
    LocalTime time = LocalTime.parse("25:70");
} catch (DateTimeParseException e) {
    System.out.println("Invalid time format");
}
challenge icon

التحدي

سهل

أنشئ دالة باسم processTime تأخذ أربع وسيطات:

  1. سلسلة نصية (timeStr) بالتنسيق "HH:mm"
  2. عددًا صحيحًا (amount) للإضافة أو الطرح
  3. سلسلة نصية (unit) تكون إما "hours" أو "minutes"
  4. سلسلة نصية (operation) تكون إما "add" أو "subtract"

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

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

يجب أن تكون الرسائل المُعادة كما يلي:

  • إذا كان تنسيق الوقت غير صالح: أرجِع "Invalid time format"
  • إذا كانت الوحدة غير صالحة: أرجِع "Invalid unit"
  • إذا كانت العملية غير صالحة: أرجِع "Invalid operation"
  • عند النجاح: أرجِع "Original: [time], New: [new_time]"

جرّب بنفسك

import java.util.Scanner;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processTime(String timeStr, int amount, String unit, String operation) {
        // اكتب الكود الخاص بك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String timeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processTime(timeStr, amount, unit, operation));
    }
}
quiz iconاختبر نفسك

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

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

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