String Scheduler::convertFromDayHourMinInDecimal(String timeDate) { // convert the timeDate from DayHourMin-Format into Decimal-Format // DAY : MON = 1, TUE = 2, WED = 3, THU = 4, FRI = 5, SAT = 6, SUN = 6 // HOUR : 00..23 // MIN : 00..60 // WED 10:27 -----> 31027 bool statusOk = true; String value; // Analyze the day if (timeDate.CompareN("MON", 3, 0) == 0) { value.Append("1"); } else if (timeDate.CompareN("TUE", 3, 0) == 0) { value.Append("2"); } else if (timeDate.CompareN("WED", 3, 0) == 0) { value.Append("3"); } else if (timeDate.CompareN("THU", 3, 0) == 0) { value.Append("4"); } else if (timeDate.CompareN("FRI", 3, 0) == 0) { value.Append("5"); } else if (timeDate.CompareN("SAT", 3, 0) == 0) { value.Append("6"); } else if (timeDate.CompareN("SUN", 3, 0) == 0) { value.Append("7"); } else { statusOk = false; } // Analyze the hour if (statusOk) { char td4 = timeDate.At(4), td5 = timeDate.At(5); if (isdigit(td4) && isdigit(td5)) { long val = (td4 - '0') * 10 + (td5 - '0'); if (val < 24) { value.Append(timeDate.SubString(4, 2)); } else { statusOk = false; } } else { statusOk = false; } } // Analyze the minutes if (statusOk) { char td7 = timeDate.At(7), td8 = timeDate.At(8); if (isdigit(td7) && isdigit(td8)) { long val = (td7 - '0') * 10 + (td8 - '0'); if (val < 60) { value.Append(timeDate.SubString(7, 2)); } else { statusOk = false; } } else { statusOk = false; } } if (statusOk) { return value; } else { return ""; } }
String Scheduler::CurrTimeDateInDecimal() { // CTimeDate = "Wed Apr 07 17:27:04 1999 // decimal = "199904071727" time_t now; time(&now); struct tm result; String cTimeDate; system::LocalTime(&now, &result); system::AscTime(&result, cTimeDate); bool statusOk = true; String value; // Analyze the year char td20 = cTimeDate.At(20), td21 = cTimeDate.At(21), td22 = cTimeDate.At(22), td23 = cTimeDate.At(23); if (isdigit(td20) && isdigit(td21) && isdigit(td22) && isdigit(td23)) { value.Append(cTimeDate.SubString(20, 4)); } else { statusOk = false; } // Analyze the month if (statusOk) { cTimeDate.ToUpper(); ; if (cTimeDate.CompareN("JAN", 3, 4) == 0) { value.Append("01"); } else if (cTimeDate.CompareN("FEB", 3, 4) == 0) { value.Append("02"); } else if (cTimeDate.CompareN("MAR", 3, 4) == 0) { value.Append("03"); } else if (cTimeDate.CompareN("APR", 3, 4) == 0) { value.Append("04"); } else if (cTimeDate.CompareN("MAY", 3, 4) == 0) { value.Append("05"); } else if (cTimeDate.CompareN("JUN", 3, 4) == 0) { value.Append("06"); } else if (cTimeDate.CompareN("JUL", 3, 4) == 0) { value.Append("07"); } else if (cTimeDate.CompareN("AUG", 3, 4) == 0) { value.Append("08"); } else if (cTimeDate.CompareN("SEP", 3, 4) == 0) { value.Append("09"); } else if (cTimeDate.CompareN("OCT", 3, 4) == 0) { value.Append("10"); } else if (cTimeDate.CompareN("NOV", 3, 4) == 0) { value.Append("11"); } else if (cTimeDate.CompareN("DEC", 3, 4) == 0) { value.Append("12"); } else { statusOk = false; } } // Analyze the day if (statusOk) { char td8 = cTimeDate.At(8), td9 = cTimeDate.At(9); if (isdigit(td8) && isdigit(td9)) { long val = (td8 - '0') * 10 + (td9 - '0'); if (val <= 31) { value.Append(cTimeDate.SubString(8, 2)); } else { statusOk = false; } } else { statusOk = false; } } // Analyze the hour if (statusOk) { char td11 = cTimeDate.At(11), td12 = cTimeDate.At(12); if (isdigit(td11) && isdigit(td12)) { long val = (td11 - '0') * 10 + (td12 - '0'); if (val < 24) { value.Append(cTimeDate.SubString(11, 2)); } else { statusOk = false; } } else { statusOk = false; } } // Analyze the min if (statusOk) { char td14 = cTimeDate.At(14), td15 = cTimeDate.At(15); if (isdigit(td14) && isdigit(td15)) { long val = (td14 - '0') * 10 + (td15 - '0'); if (val < 60) { value.Append(cTimeDate.SubString(14, 2)); } else { statusOk = false; } } else { statusOk = false; } } if (statusOk) { return value; } else { return ""; } }