public static void Main()
var data1 = new HolidayDateTime(15, 11, 0, 0);
var data2 = new HolidayDateTime(07, 09, 0, 0);
Console.WriteLine(data1 + " maior ou igual a " + data2);
Console.WriteLine(data1 + " menor que " + data2);
Console.WriteLine(data1 + " maior que " + data2);
Console.WriteLine(data1 + " menor ou igual a " + data2);
private class HolidayDateTime
public readonly uint[] RangeValueDay = { 1, 31 };
public readonly uint[] RangeValueMonth = { 1, 12 };
public readonly uint[] RangeValueHour = { 0, 23 };
public readonly uint[] RangeValueMinute = { 0, 60 };
public uint Day { get; private set; }
public uint Month { get; private set; }
public uint Hour { get; private set; }
public uint Minute { get; private set; }
protected HolidayDateTime() { }
public HolidayDateTime(uint day, uint month, uint hour, uint minute)
public string DateFullToString() => Day + @"/" + Month + " " + Hour + ":" + Minute;
public uint[] DateFullToArray() => new uint[] { Day, Month, Hour, Minute };
public static bool operator ==(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => hdaydt1.Day == hdaydt2.Day && hdaydt1.Month == hdaydt2.Month && hdaydt1.Hour == hdaydt2.Hour && hdaydt1.Minute == hdaydt2.Minute;
public static bool operator !=(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => hdaydt1.Day != hdaydt2.Day || hdaydt1.Month != hdaydt2.Month || hdaydt1.Hour != hdaydt2.Hour || hdaydt1.Minute != hdaydt2.Minute;
public static bool operator >=(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => string.Compare(GetString(hdaydt1), GetString(hdaydt2)) >= 0;
public static bool operator <=(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => string.Compare(GetString(hdaydt1), GetString(hdaydt2)) <= 0;
public static bool operator >(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => string.Compare(GetString(hdaydt1), GetString(hdaydt2)) > 0;
public static bool operator <(HolidayDateTime hdaydt1, HolidayDateTime hdaydt2) => string.Compare(GetString(hdaydt1), GetString(hdaydt2)) < 0;
public override bool Equals(object hdt)
return this == (hdt as HolidayDateTime);
public override int GetHashCode()
return base.GetHashCode();
public override string ToString()
private static string GetString(HolidayDateTime hdt)
return hdt.Month.ToString("00") + hdt.Day.ToString("00") + hdt.Hour.ToString("00") + hdt.Minute.ToString("00");