Сейчас на форуме: tyns777, zombi-vadim, zds (+4 невидимых)

 eXeL@B —› Программирование —› Трабла со временем (SystemTime +/- bias от timezone)
Посл.ответ Сообщение

Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 25 июня 2015 19:49
· Личное сообщение · #1

Короче, стою я на асфальте...
Code:
  1. ::GetSystemTime(&pThis->ztime);
  2. ::GetTimeZoneInformation(&pThis->zzone);
  3. (signed short)pThis->ztime.wHour = (signed short)(pThis->ztime.wHour) + (signed short)((signed short)pThis->zzone.Bias/(signed short)pThis->zzone.DaylightBias); // zzone.DaylightBias = 60 минут или -60 минут
  4.  
  5. if((signed short)pThis->ztime.wHour < 0) //скорее всего, эт мои фантазии )
  6.                               pThis->ztime.wHour = ~pThis->ztime.wHour;

если не заморачиваться, то КОРОТКО в двух словах: я понимаю, что от systemtime мы едем против часовой стрелки/по часовой в зависимости от смещения часовой зоны, предварительно поделив ко-во минут?!

Вся проблема в том, что компиль скипает строку с арифметическими действиями и я не совсем догоняю почему.




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 26 июня 2015 11:51 · Поправил: neomant
· Личное сообщение · #2

А чем не устраивает GetLocalTime? А так нужно корректировать не только час, но и день, месяц, год или использовать что-нибудь более продвинутое типа CTime.

add: Забыл ещё про високосный год.

-----
Следуй за белым кроликом



 eXeL@B —› Программирование —› Трабла со временем (SystemTime +/- bias от timezone)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати