מחלקה 11.2 — Time

משימה

עליכם לכתוב קטע קוד הכולל מחלקה ראשית (Main) המבצע את השלבים הבאים:


יצירת זמנים

  1. בנו שלושה זמנים שונים בשם t1, t2, t3 באמצעות הבנאי המקבל שעה ודקות.

יצירת עותק

  1. בנו זמן נוסף בשם t4, הזהה בערכיו לזמן t1.
  2. הציגו את הזמן t4.

עדכון באמצעות פעולות set

  1. עדכנו שני זמנים לבחירתכם (שעה או דקות) באמצעות פעולת עדכון מתאימה.
  2. הציגו את הזמנים המעודכנים.

עדכון באמצעות הוספת דקות

  1. עדכנו את שני הזמנים הנותרים באמצעות הפעולה AddMinutes.
  2. הציגו את הזמנים המעודכנים.

מציאת זמן מינימלי

  1. עבור הזמנים שהוגדרו בסעיף 1, מצאו והציגו את הזמן המוקדם ביותר.

מציאת הפרש מינימלי

  1. עבור הזמנים שהוגדרו בסעיף 1, מצאו את שני הזמנים שההפרש ביניהם הוא הקטן ביותר.
  2. הציגו אותם.

זמן הקרוב ביותר לחצות

  1. עבור הזמנים שהוגדרו בסעיף 1, מצאו והציגו את הזמן הסמוך ביותר לחצות.

מחלקת Time

נתונה מחלקה בשם Time, המייצגת זמן (שעה ודקות).

המחלקה ממומשת בקובץ נפרד וכוללת את החתימות הבאות:


בנאים

  1. public Time(int h, int m)
  2. בונה אובייקט זמן חדש משעה h ודקה m.
  3. אם הערכים אינם בטווח חוקי, השעה והדקות נקבעים ל־0.

  4. public Time(Time other)
  5. בנאי העתקה: בונה אובייקט זמן חדש עם אותם ערכים של שעה ודקות כמו האובייקט other.

פעולות get

  1. public int GetHour() — מחזירה את השעה של האובייקט.
  2. public int GetMinute() — מחזירה את הדקות של האובייקט.

פעולות set

  1. public void SetHour(int h) — משנה את השעה אם h בטווח החוקי (0–23); אחרת לא משנה.
  2. public void SetMinute(int m) — משנה את הדקות אם m בטווח החוקי (0–59); אחרת לא משנה.

פעולות נוספות

  1. public override string ToString() — מחזירה ייצוג מחרוזתי של הזמן בפורמט "hh:mm" עם אפסים מובילים.

  2. public int MinFromMidnight() — מחזירה את מספר הדקות שעברו מאז חצות.

  3. public bool Equals(Time other) — בודקת האם זמן זה שווה לזמן אחר (גם שעה וגם דקות שוות).

  4. public bool Before(Time other) — מחזירה true אם הזמן הנוכחי קודם (מוקדם) מהזמן other.

  5. public bool After(Time other) — מחזירה true אם הזמן הנוכחי מאוחר מהזמן other.

  6. public int Difference(Time other) — מחזירה את ההפרש בדקות בין הזמן הנוכחי לבין הזמן other, בהנחה שהנוכחי מאוחר יותר.

  7. public Time AddMinutes(int num) — מחזירה זמן חדש שמתקבל לאחר הוספת num דקות לזמן הנוכחי, בצורה מחזורית בתוך יום (מודולו 1440 דקות).