Математика времени

Previous  Top  Next

    
 

Работа с временными величинами в Delphi очень проста, если пользоваться встроенными функциями преобразования. Определите глобальные Hour, Minute, Second и инициализируйте их следующим образом:

 

Code:

Hour   := EncodeTime(1,0,0,0);

Minute := EncodeTime(0,1,0,0);

Second := EncodeTime(0,0,1,0);

 

Или, если вы предпочитаете константы, сделайте так:

 

Code:

Hour = 3600000/MSecsPerDay;

Minute = 60000/MSecsPerDay;

Second = 1000/MSecsPerDay;

 

Теперь для того, чтобы добавить 240 минут к переменной TDateTime, просто сделайте

 

T := T + 240*Minute;

 

©Drkb::00764

http://delphiworld.narod.ru/

DelphiWorld 6.0

 

 


 

Есть более простой путь для работы с датой и временем чем прибегать к функциям зашитым в DateUtil. На самом деле тип TDateTime является обычным real - числом с плавающей точкой, который  содержит количество дней прошедших с 30 декабря 1899 года (под Windows) или с 1 января 1900 года под Linux. Таким образом целая часть - есть дни. Чтобы взять дату днём позже достаточно просто прибавить 1, неделей позже - прибавить 7. Дробная часть даты это время, причём в днях, т.е. 1 час это 1/24 или 0.0416(6), 1 минута будет равна 1/(24*60), а одна секунда соответственно 1/(24*3600). Ну дальше всё просто... не сложнее арифметики за 3 класс очень средней школы...

 

©Drkb::00765

Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)