#if FRAMEWORK20 using System; namespace DevComponents.Schedule.Model { /// /// Represents a work time. /// public struct WorkTime { #region Private variables private int _Hour; // Hour private int _Minute; // Minute #endregion /// /// Initializes a new instance of the WorkTime structure. /// /// /// public WorkTime(int hour, int minute) { if (hour < 0 || hour > 23) throw new ArgumentException("Hour value must be from 0 to 23"); if (minute < 0 || minute > 59) throw new ArgumentException("Minute value must be from 0 to 59"); _Hour = hour; _Minute = minute; } #region Public properties /// /// Gets or sets the hour from 0 to 23 this time instance represents. /// public int Hour { get { return _Hour; } set { if (value < 0 || value > 23) throw new ArgumentException("Hour value must be from 0 to 23"); _Hour = value; } } /// /// Gets or sets the minute from 0 to 59 this time instance represents. /// public int Minute { get { return _Minute; } set { if (value < 0 || value > 59) throw new ArgumentException("Minute value must be from 0 to 59"); _Minute = value; } } /// /// Determines if the WorkTime is Empty /// public bool IsEmpty { get { return (_Hour == 0 && _Minute == 0); } } #endregion #region Operator overloades public static bool operator >=(WorkTime op1, WorkTime op2) { if ((op1.Hour > op2.Hour) || (op1.Hour == op2.Hour && op1.Minute >= op2.Minute)) { return (true); } return (false); } public static bool operator <=(WorkTime op1, WorkTime op2) { if ((op1.Hour < op2.Hour) || (op1.Hour == op2.Hour && op1.Minute <= op2.Minute)) { return (true); } return (false); } public static bool operator >(WorkTime op1, WorkTime op2) { if ((op1.Hour > op2.Hour) || (op1.Hour == op2.Hour && op1.Minute > op2.Minute)) { return (true); } return (false); } public static bool operator <(WorkTime op1, WorkTime op2) { if ((op1.Hour < op2.Hour) || (op1.Hour == op2.Hour && op1.Minute < op2.Minute)) { return (true); } return (false); } #endregion } } #endif