Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Расчет разницы между Датами в днях...

Здравствуйте.

У меня есть две Даты. Мне надо вычислить разницу между ними в днях,
т.е. сколько дней между первой и второй датой с учетом високосного
года, столетия и т.д.
Как это можно сделать ? Может есть какие-то функции ? В Хелпе я
не нашел.

Ответить   Feniks Thu, 17 Jun 2004 14:14:31 +0300 (#172293)

 

Ответы:

Чувак ты в каком измерении? Хоть язык програмирования назови?
C Ув. Александр Токарев

Здравствуйте.

У меня есть две Даты. Мне надо вычислить разницу между ними в днях,
т.е. сколько дней между первой и второй датой с учетом високосного
года, столетия и т.д.
Как это можно сделать ? Может есть какие-то функции ? В Хелпе я
не нашел.

--
С уважением,
Feniks mailto: feni***@b*****.ua
Номер выпуска : 3278
Возраст листа : 269 (дней)
Количество подписчиков : 424
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/172293
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru
Номер выпуска : 3279
Возраст листа : 269 (дней)
Количество подписчиков : 424
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/172443
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать : mailto:comp.soft.prog.prog--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Thu, 17 Jun 2004 19:32:59 +0300 (#172443)

 

А слабо описать это для Григорианского календаря на псевдокоде? :)

Ответить   Sam Mesh Thu, 17 Jun 2004 12:50:18 -0400 (#172458)

 

Здравствуйте, Александр.

Вы писали 17 июня 2004 г. в 19:32:59 [GMT +2:00]:

А зачем тебе мое измерение и какая разница на каком языке, главное
суть и алгоритм !!!! Если знаешь алгоритм, возьми и выложи всем,
ЧуВаК.

Тема закрыта.
Я сам нашел решение на сайте http://alglib.manual.ru:

I-вариант:
function DaysLeft(pDate1, pDate2 : TDate) : Integer;
var
n1, n2,
d1, d2,
m1, m2,
y1, y2 : Word;

begin
DecodeDate(pDate1, y1, m1, d1);
DecodeDate(pDate2, y2, m2, d2);
if m1>2 then
begin
m1 := m1+1;
end
else
begin
m1 := m1+13;
y1 := y1-1;
end;
n1 := 36525*y1 div 100+306*m1 div 10+d1;
if m2>2 then
begin
m2 := m2+1;
end
else
begin
m2 := m2+13;
y2 := y2-1;
end;
n2 := 36525*y2 div 100+306*m2 div 10+d2;
Result := n2-n1;
end;

II-вариант мне подсказал Monah:
В Делфи тип TDateTime описан как Double, можно
использовать Real;
var
d:Real;
d1,d2:TDateTime;
begin
d:=d2-d1; // целая часть содержит дни, дробная доли суток *24
получаем часы.

Ответить   Feniks Fri, 18 Jun 2004 10:31:46 +0300 (#172735)