Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.039 c
1-1106676112
tazik
2005-01-25 21:01
2005.02.13
Как обратиться к объекту, если еасть его имя.


1-1106941909
MadGhost
2005-01-28 22:51
2005.02.13
Как мне из Memo сделать наподобие терминалки?


1-1107163743
denis24
2005-01-31 12:29
2005.02.13
Проверка поля стрингрида


1-1107264281
Zloy
2005-02-01 16:24
2005.02.13
Фокус кнопки


6-1101114089
mariya
2004-11-22 12:01
2005.02.13
как прикрепить файл




   Наверх