Этот флаг показывает, в действительности ли "летнее" время учтено в этой структуре. Значение флага положительно, если "летнее" время учитывается, 0, если нет, и отрицательно, если информация недоступна.
Мдя.... все равно не могу разобраться что мне делать.
Проблема следующая:
Мне нужно увеличить время на определенное число секунд.
Я делаю так:
struct tm t;
memset(&t,0,sizeof(t));
t.tm_year = year - 1900;
t.tm_mon = month - 1;
t.tm_mday = day;
t.tm_hour = hour;
t.tm_min = min;
t.tm_sec = sec;
///t.tm_isdst = ???
time_t s = mktime(&t);
s += shift;
struct tm * t2 = localtime(&s);
year = t2->tm_year + 1900;
month = t2->tm_mon + 1;
day = t2->tm_mday;
hour = t2->tm_hour;
min = t2->tm_min;
sec = t2->tm_sec;
Какое значение мне надо присвоить t.tm_isdst, чтобы в результате этого
кода исходное время просто сдвигалось на shift секунд, не зависимо от
того какой месяц.
Эксперименты показали, что -1 дает нужный результат, но гугль сказал,
что в этом случае все "implementation defined". А мне нужен
кроссплатформенный вариант, или хотя бы работал на всех *NIX
одинаково.