Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как добавить дни к wDay у SYSTEMTIME?

833
21 января 2008 года
leich
135 / / 27.09.2006
Привет. Не понимаю как можно увеличить дату, которая хранится в SYSTEMTIME. т.е. чтобы при добавлении допустим wDay, другие параметры там месяц и т.д. тоже увеличивались если надо. Пробовал перегнать в FILETIME и добавлять уже наносекундами к FILETIME, но ничего не вышло.
1.8K
22 января 2008 года
_const_
229 / / 26.11.2003
Примерно так
Код:
SYSTEMTIME st;
GetLocalTime(&st);
FILETIME ft;
SystemTimeToFileTime(&st, &ft);
ULARGE_INTEGER uli;
uli.LowPart = ft.dwLowDateTime;
uli.HighPart = ft.dwHighDateTime;
uli.QuadPart += numDays * 24 * 60 * 60 * 1000000000ULL;
ft.dwLowDateTime = uli.LowPart;
ft.dwHighDateTime = uli.HighPart;
FileTimeToSystemTime(&ft, &st);
833
22 января 2008 года
leich
135 / / 27.09.2006
Ок. Спасибо. Попробую.
833
23 января 2008 года
leich
135 / / 27.09.2006
Нет почему то не работает - значение совсем другое получается. Я добавил 2 дня - у меня добавилось 8 месяцев. Там что то наверное с арифметикой ULONGLONG.
1.8K
24 января 2008 года
_const_
229 / / 26.11.2003
Ну хоть немного самому подумать сложно? Там же в примере два нуля лишние - опечатался я.
833
25 января 2008 года
leich
135 / / 27.09.2006
А да точно работает. Спасибо. Сам чето тоже забыл про 100 наносекунд)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог