public static string GetTextFromScheduleData(int scheduleData)
int daysOfWeek = (scheduleData & 0x000000FF);
int hour = (scheduleData & 0x0000FF00) >> 8;
int min = (scheduleData & 0x00FF0000) >> 16;
int windowSize = (int)((scheduleData & 0xFF000000) >> 24);
bool sunday = (daysOfWeek & 0x01) != 0;
bool monday = (daysOfWeek & 0x02) != 0;
bool tuesday = (daysOfWeek & 0x04) != 0;
bool wednesday = (daysOfWeek & 0x08) != 0;
bool thursday = (daysOfWeek & 0x10) != 0;
bool friday = (daysOfWeek & 0x20) != 0;
bool saturday = (daysOfWeek & 0x40) != 0;
bool repeatWeekly = (daysOfWeek & 0x80) != 0;
string repeatWeeklyText = repeatWeekly ? "every week" : "one-time";
string[] daysText = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
bool[] daysSet = {sunday, monday, tuesday, wednesday, thursday, friday, saturday};
string daysOfWeekText = "";
for (int i = 0; i < 7; i++)
if (daysOfWeekText != "")
daysOfWeekText += daysText[i];
return hour.ToString("D2") + ":" + min.ToString("D2") +" with a " + windowSize + "-minute window size "
+ repeatWeeklyText + " on " + daysOfWeekText;
public static void Main()
Console.WriteLine(GetTextFromScheduleData(84542209));
Console.WriteLine(GetTextFromScheduleData(0x1E001412));
Console.WriteLine(GetTextFromScheduleData(0x5A2D0AA5));