Определите, применяется ли дневная сбережения к определенной датеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Определите, применяется ли дневная сбережения к определенной дате

Сообщение Anonymous »

Я пытаюсь изменить даты создания файлов на дату, когда они были выпущены. Сначала я преобразую такую ​​строку, как «2 апреля 2005 года» в std :: tm . Затем я создаю системное время < /code> следующим образом: < /p>

Код: Выделить всё

std::tm dt = from_string("2 April 2005");
SYSTEMTIME st { 0 };
st.wYear = dt.tm_year + 1900; // dt is years from 1900
st.wMonth = dt.tm_mon + 1; // dt is month index 0
st.wDay = dt.tm_mday;
st.wHour = 6; // FILETIME is based on UTC, which is 6 hours ahead
< /code>

После этого я преобразую системное время < /code> в fileTime < /code> и использую их для применения изменений. < /p>

Это устанавливает время файла до 2 апреля 2005 г. 12:00:00 
, что правильно. Тем не менее, видео после 2 апреля были установлены в 1:00:00 < /code>, и, конечно же, дневная экономия произошла 3 апреля 2005 года. < /P>

Как я могу Определите, является ли определенная дата до или после дневного сбережений, чтобы я мог скорректировать St.Whour соответственно? Цель состоит в том, чтобы все время устанавливалось в 12:00:00 . Предпочтительно это будет работать на даты, датируемые 60 -х, а также на текущем. Time_zone_id_standard .

Подробнее здесь: https://stackoverflow.com/questions/596 ... rtain-date
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»