Местное время возвращает несоответствующие результаты для tm_wday

Не уверен, если это проблема часового пояса: в настоящее время на SGT.

Следующий код сообщает пт 17 апреля 2009 г. как день недели 6 (??), а пт 2 января - день недели 5.

#include <time.h>
#include <stdio.h>

#define ONE_DAY 86400

int main() {
    time_t StartDate = (time_t) 1239984000;
    struct tm StartDateStruct = *localtime(&StartDate);
    fprintf(stdout, "Date is %s", asctime(gmtime(&StartDate)));
    fprintf(stdout, "Day of the week is = %i\n\n", StartDateStruct.tm_wday);

    StartDate = (time_t) 0;
    for (int i=0; i<7; i++) {
        StartDate = ONE_DAY * i;
        StartDateStruct = *localtime(&StartDate);
        fprintf(stdout, "Date is %s", asctime(gmtime(&StartDate)));
        fprintf(stdout, "Day of the week is = %i\n", StartDateStruct.tm_wday);
    }
}

f19 3.11.4-201.fc19.x86_64, gcc 4.8.1 / clang 3.3

Заранее спасибо.

Майкл

0 ответов

Другие вопросы по тегам