Вниз
Скачать: CL | DM;

работа с SYSTEMTIME, FILETIME, прибавить любой промежуток времени   Найти похожие ветки 

← →
Max_2006   (2006-12-17 17:09) [0]

Функцией GelLocalTime я узнаю текущее время установленное на компьютере в структуре SYSTEMTIME.. А вот как мне к этому времени прибавить например день, но так что если текущий день будет последним в текущем месяце то и месяц прибавится, так же и с годом... Попробовал сделать так:

var
sysTime: SYSTEMTIME;
begin
 GetLocalTime(sysTime);
 sysTime.wDay := sysTime.wDay + 1;
end;

День прибавляется, но без учета если текущий день будет последним в текущем месяце то и месяц прибавится, так же и с годом, т.е. получается и 32-й и 33-й и т.д.. день в месяце, чего нету на самом деле... Подозреваю что через FILETIME можно это реализовать, но как это сделать, т.е. математику этой структуры я что-то нигде не нашел, нашел единственное что время считается в 100нс, но так я и не понял, там есть dwHighDateTime и dwLowDateTime, и что с этим делать, как это считать? Прошу не посылась в MSDN, читал там...


← →
Eraser ©   (2006-12-17 17:14) [1]

> [0] Max_2006   (17.12.06 17:09)

почему бы не использовать старый добрый TDateTime ?
var
sysTime: TDateTime;
begin
sysTime := Now;
sysTime := sysTime + 1;
end;

потом, если, есть желаение, можно перевести в системный формат. хотя вижу смысл использовать онный, только если нужно получить свойства файла.


← →
Max_2006   (2006-12-17 17:30) [2]

TDateTime, хоть и старый и добрый, но опять же таки, я на WinAPI учусь, не хочу борландовские модули подключать... Хоть TDateTime и находится в модуле System, а фонкции работы с ним в SysUtils, я и задал этот вопрос, чтобы обойтись без этого модуля..


← →
BiN ©   (2006-12-17 17:51) [3]


>  Прошу не посылась в MSDN, читал там...


врач сказал в msdn, значит, в msdn.


← →
Max_2006   (2006-12-17 22:32) [4]

Спасибо! Вы очень добры...


← →
BiN ©   (2006-12-17 23:59) [5]


> Max_2006   (17.12.06 17:09)  
> Подозреваю что через
> FILETIME можно это реализовать, но как это сделать, т.е.
>  математику этой структуры я что-то нигде не нашел, нашел
> единственное что время считается в 100нс, но так я и не
> понял, там есть dwHighDateTime и dwLowDateTime, и что с
> этим делать, как это считать? Прошу не посылась в MSDN,
> читал там...


type
 FILETIMEEX = packed record
   case Byte of
   1: (F: FILETIME);
   2: (N: Int64);
 end;

var
 T: FILETIME;
begin
 Win32Check(GetSystemTimeAsFileTime(T));
 FILETIMEEX(T).N:=FILETIMEEX(T).N+100*1000*1000
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
8-1147856391
TRyaSS
2006-05-17 12:59
2007.01.07
Алгоритм закрашивания невыпуклого полигона?


15-1166176055
ProgRAMmer Dimonych
2006-12-15 12:47
2007.01.07
Ваше мнение об ucoz.ru?


2-1166208980
=[)eSTr0YYeR=
2006-12-15 21:56
2007.01.07
Как получить список файлов в каталоге?


15-1166395163
Nic (from home)
2006-12-18 01:39
2007.01.07
Ряды и дифференциальные уравнения


2-1166320824
КВАНТ
2006-12-17 05:00
2007.01.07
Про URL в RichEdit и про Panel (несовместимость?)




   Наверх