Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизКак определить промежуток между двумя переменными 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c