Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Как определить промежуток между двумя переменными TDateTime?   Найти похожие ветки 

 
Mishenka   (2005-01-28 14:18) [0]

Как определить промежуток времени между двумя переменными TDateTime?


 
begin...end ©   (2005-01-28 14:20) [1]

> Mishenka   (28.01.05 14:18)

Вычитанием.


 
Александр Иванов ©   (2005-01-28 14:21) [2]

Промежуток в чем: дни, недели, месяцы, года и т.д.?
DaysBetween
WeeksBetween
MonthBetween
YearsBetween
и т.д.


 
Mishenka   (2005-01-28 14:24) [3]

Так после вычитания получается 1899 год и т.п., а мне надо чтобы было 1 день .. часов .. минут и т.д.


 
begin...end ©   (2005-01-28 14:32) [4]

> [3] Mishenka   (28.01.05 14:24)

После вычитания получается количество дней.
Например, вот столько дней осталось до моего Дня Рождения:

procedure TForm1.Button1Click(Sender: TObject);
var
 D1, D2: TDateTime;
begin
 D1 := Now;
 D2 := StrToDateTime("7.09.2005 17:00");
 Caption := FloatToStr(D2 - D1)
end.


А если вспомнить, что в сутках 24 часа, или 24 * 60 = 1440 минут, - так совсем всё понятно становится.


 
pavel_guzhanov   (2005-01-28 16:28) [5]

Когда то на этом форуме я прочитал вот это:

"Структура и смысл значений типа tDateTime

Данный тип может хранить дату и время. Представляет он из себя на самом деле обычное действительное число с плавающей точкой двойной точности - double.

Целая часть числа преставляет дату - это число суток, прошедших с 30 декабря 1899 года. Т.е. значение 0 представляет 0ч. 0мин. 30-12-1899, значение 1 - 0ч. 0мин. 31-12-1899, 10 - 0ч. 0мин. 9-01-1900, -2 - 0ч. 0мин. 28-12-1899 и т.д.

Чтобы увеличить/уменьшить дату на n дней, нужно прибавить/отнять n от значения даты. Чтобы увеличить/уменьшить дату на n месяцев, нужно воспользоваться функцией IncMonth. Чтобы увеличить/уменьшить дату на n лет нужно воспользоваться той же функцией, передав ей в качестве количества месяцев n*12.

Дробная часть числа представляет время.
Целое значение соответствует 0ч. 0мин. представленной этим значением даты. Чтобы увеличить/уменьшить время на 1 час, нужно прибавить/отнять от значения 1/24. 1 минута соответствует 1/1440. 1 секунда - 1/86400.

2.25, таким образом, соответствует 6ч. 0мин. 1-01-1900."

К сожалению, не помню автора, но на авторство сам не претендую. При работе с TDateTime всегда руководствуюсь этим описанием...


 
Vasya.ru ©   (2005-01-28 16:52) [6]

begin...end ©   (28.01.05 14:32) [4]
Например, вот столько дней осталось до моего Дня Рождения:
"7.09.2005 17:00"

а мне казалось, ты старше


 
Anatoly Podgoretsky ©   (2005-01-28 19:54) [7]

pavel_guzhanov   (28.01.05 16:28) [5]
После вычитания никаких дат не получается, а только промежуток времени между двумя переменными TDateTime



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

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

Наверх




Память: 0.48 MB
Время: 0.063 c
4-1104025243
You
2004-12-26 04:40
2005.02.13
?? Параметризация TDialog офф ??


1-1107104530
KLAUS
2005-01-30 20:02
2005.02.13
Задержка


1-1106990305
ivane
2005-01-29 12:18
2005.02.13
Графика в TRichEdit


3-1105986233
KristinA
2005-01-17 21:23
2005.02.13
Kak s4itat bazu dannih do togo kak form1 pojavitsja??


6-1101921015
OneFragLeft
2004-12-01 20:10
2005.02.13
Как сделать BroadCast