Menu
Coddy logo textTech

תקופה ומשכי זמן

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 57 מתוך 59.

Period מייצג פרק זמן המבוסס על תאריך (שנים, חודשים, ימים), ואילו Duration מייצג פרק זמן המבוסס על זמן (שעות, דקות, שניות).

יצירת תקופה:

Period period = Period.of(1, 2, 15);
// שנה אחת, 2 חודשים, 15 ימים

יצירת משך זמן:

Duration duration = Duration.ofHours(2);
// 2 שעות
Duration minutes = Duration.ofMinutes(90);
// 90 דקות

לאחר ביצוע הקוד שלמעלה, period מכיל:

P1Y2M15D  // פורמט ISO-8601
challenge icon

אתגר

קל

צרו מתודה בשם calculateDifference שמקבלת ארבעה ארגומנטים:

  1. מחרוזת (start) בפורמט "yyyy-MM-dd HH:mm"
  2. מחרוזת (end) בפורמט "yyyy-MM-dd HH:mm"
  3. מחרוזת (unit) שערכה "period" או "duration"
  4. מחרוזת (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"

נסו בעצמכם

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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין