Здравствуйте, Denis Mingulov, Вы писали: DM>А какая разница, раз речь про 1970 год и далее — значит эта функция всегда неправильно работала. DM>в СССР в 1981 году менялось ("декретное время", в 1991, Калиниград поменял часовой пояс, регионы разные в любое другое время). DM>Будет интересно посмотреть на правильную функцию/утилиту, учитывающую всё.
Да нет. Раньше она правильно работала. Для московского часового пояса что с 1970 по 1981, что с 1981 по осень 2011 был часовой пояс UTC+3.
Т.е. tmptm1 += timezone; , где timezone=10800 и летом начиная с 1981г стало прибавляться dstbias=3600. А с осени 2011 пояс стал UTC+4, т.е timezone=14400. А функции _mktime64() пофиг какую дату её просят посчитать. Она теперь всегда 14400 прибавляет.