![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здраствуйте.
подскажите как такое вот сделать. есть переменная типа TDateTime которая содержит определённое время. и мне надо добавить к ней введенное время в милисекундах. т.е. например сейчас в переменной содержится время 21:57:25 и надо прибавить 20минут в милисеках (1200000 msec),чтоб стало 22:17:25 помогите пожалуйста ![]() |
#2
|
||||
|
||||
![]() Тип TDateTime равен Double, отсюда делай выводы.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() дабл ни о чем не говорит.
сделал такую ф-цию.преобразовывает милисеки к типу TTime,а дальше просто складываю свое время с результвтом функции Код:
function TimeParser(msec:integer):TTime; var hh,mm,ss,ms:integer; begin ms:=msec; hh:=0;mm:=0;ss:=0; If ms>999 then ss:=ms div 1000; ms:=ms mod 1000; // If ss>59 then mm:=ss div 60; ss:=ss mod 60; // If mm>59 then hh:=mm div 60; mm:=mm mod 60; Result:=EncodeTime(hh,mm,ss,ms); end; |
#4
|
||||
|
||||
![]() Я бы сделал несколько по иному. Привел бы к TSystemTime, добавил миллисекунды, вернул обратно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Цитата:
вообще-то, не совсем так. Тип TDateTime есть некоторое дробное число (это не совсем число с фиксированной точкой, но близко. точно не с плавающей), в котором в целой части хранится кол-во дней от определенной даты (1.1.1900, если не ошибаюсь), а в дробной - время, причем 1/24 равна 1 часу и т.д. Т.о. 1 мс = 1/(24*60*60*1000). Дальше арифметика простая. |
#6
|
||||
|
||||
![]() Ну почему же? Открываем system.pas в любой версии Дельфи:
Код:
type TDateTime = type Double; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |