When I try to comapre 2 time_t values I get unexplained behavour
time_t t = 12345;
time_t T = 67890;
struct tm *tm = localtime(&t);
struct tm *Tm = localtime(&T);
char timeStamp[40];
sprintf(timeStamp, "(1) %04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
Serial.println(timeStamp);
sprintf(timeStamp, "(2) %04d-%02d-%02d %02d:%02d:%02d", Tm->tm_year + 1900, Tm->tm_mon + 1, Tm->tm_mday, Tm->tm_hour, Tm->tm_min, Tm->tm_sec);
Serial.println(timeStamp);
I get the exact same date.
When commenting out one of each set, I get the correct answer for each one.
Workaround I did was, but i'm sure there is an elegant way to overcome:
time_t t = 12345;
time_t T = 12345;
struct tm *tm = localtime(&t);
uint8_t now_month = tm->tm_mon;
uint8_t now_day = tm->tm_mday;
struct tm *Tm = localtime(&T);
uint8_t save_month = Tm->tm_mon;
uint8_t save_day = Tm->tm_mday;
if (now_month == save_month && now_day == save_day)
{
}