Menu
CoddyTech

פעולות 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

נתח זמן מתוך String בפורמט 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 אונליין