![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Как уменьшить системное время на 1 час??
|
|
#2
|
|||
|
|||
|
Что значит "уменьшить системное время"? Изменить установку системных часов или просто получить значение на 1 час меньше, чем текущее время?
|
|
#3
|
||||
|
||||
|
получить текущее время через GetSystemTime(), уменьшить 60 раз на 1 минуту и задать новое значение SetSystemTime(). не забыв почитать комментарий:
Цитата:
|
|
#4
|
|||
|
|||
|
Цитата:
Например, на компьютере время 12:50. Нужно, чтобы при нажатии на кнопку время уменьшилось на 1 час, т.е. чтобы было 11:50. Погуглил, нашел такой код, только не догоняю как его использовать: Код:
function SetPCSystemTime(tDati: TDateTime): Boolean;
var
tSetDati: TDateTime;
vDatiBias: Variant;
tTZI: TTimeZoneInformation;
tST: TSystemTime;
begin
GetTimeZoneInformation(tTZI);
vDatiBias := tTZI.Bias / 1440;
tSetDati := tDati + vDatiBias;
with tST do
begin
wYear := StrToInt(FormatDateTime('yyyy', tSetDati));
wMonth := StrToInt(FormatDateTime('mm', tSetDati));
wDay := StrToInt(FormatDateTime('dd', tSetDati));
wHour := StrToInt(FormatDateTime('hh', tSetDati));
wMinute := StrToInt(FormatDateTime('nn', tSetDati));
wSecond := StrToInt(FormatDateTime('ss', tSetDati));
wMilliseconds := 0;
end;
SetPCSystemTime := SetSystemTime(tST);
end; |
| Этот пользователь сказал Спасибо StudentMarat за это полезное сообщение: | ||
OTVET (18.01.2013)
| ||
|
#5
|
||||
|
||||
|
Вообще уменьшить время довольно просто:
Код:
Var myTime: TSystemTime; begin GetLocalTime(myTime); myTime.wHour := myTime.wHour - 1; SetLocalTime(myTime); end; |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
OTVET (18.01.2013)
| ||