Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: 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 вся ветка

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
15-1166274410
VirEx
2006-12-16 16:06
2007.01.07
помогите выбрать mp3 плеер, +для переноса информации


2-1166196967
DmitrichJ
2006-12-15 18:36
2007.01.07
Как измерить время выполнения операторов.


15-1162982792
Lamer@fools.ua
2006-11-08 13:46
2007.01.07
[Вакансия] Киев, до $1000, Junior .NET Developer (C#)


1-1163766674
Mishenka
2006-11-17 15:31
2007.01.07
Как в Word вставить картинку не поверх текста?


4-1155880481
igornov
2006-08-18 09:54
2007.01.07
Как определить координаты компонента на форме?