Главная страница
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.029 c
1-1107192869
NightStranger
2005-01-31 20:34
2005.02.13
Что такое try, finally


14-1106242977
Stef
2005-01-20 20:42
2005.02.13
Помогите найти компонент


1-1107266317
JohnKorsh
2005-02-01 16:58
2005.02.13
Программная очистка "корзины".


4-1103836615
Михаил М
2004-12-24 00:16
2005.02.13
Стандарный вывод (ввод) консольных приложений Windows


6-1101908945
Apolius
2004-12-01 16:49
2005.02.13
Проблема с Socket.OnRead