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

Вниз

разница между датами в виде 22 года 4 месяца 12 дней   Найти похожие ветки 

 
~viper~   (2005-09-20 12:52) [0]

Добрый день, уважаемые!

Помогите чем можете =). Есть такая необходимость посчитать разницу между двумя датами,например, нужно разница между датами 20.09.2005 и 01.05.1983, а вот тут собственно сама проблема, результат должен быть в виде /22 года/4 месяца/20 дней, а не сколько прошло месяцев или дней после этой даты!

Заранее благодарен за своевременную помощь!


 
kblc ©   (2005-09-20 13:02) [1]

Некогда попробовать. но так не катит:

 DayBetween:=StrToDate("20.09.2005") - StrToDate("01.05.1983");

- разница между ними в днях. Как это привести к ГГ/ММ/ДД я думаю ты догадаешься.. ;))

 Ещё точно помню что в SysUtils ещё что-то интересное есть...


 
evvcom ©   (2005-09-20 13:42) [2]


> ~viper~   (20.09.05 12:52)

Для начала ответь на вопросы:
1. 1 месяц - это сколько дней?
2. 1 год - это сколько дней?


 
kblc ©   (2005-09-20 14:33) [3]

evvcom ©   (20.09.05 13:42) [2]
Зачем над людьми издеваешься? Откуда нам знать??? ;)))


 
Anatoly Podgoretsky ©   (2005-09-20 14:35) [4]

kblc ©   (20.09.05 14:33) [3]
Зачем же тогда делаешь гнусные намеки.


 
Бурундук ©   (2005-09-20 14:56) [5]

Попробуй перебором.

Примерно так (набросал на ходу, на ошибки не проверял):

var
 date1, date2: TDateTime; // date1 < date2
 d, m, y,
 d_cnt, m_cnt, y_cnt: Word;

DecodeDate(date1, y, m, d);

y_cnt := 0;
repeat
 // прибавляешь по году и смотришь, сколько целых лет прошло
 if EncodeDate(y+y_cnt+1, m, d) < date2 then
   Inc(y_cnt) else
   Break;
until False;

m_cnt := 0;
repeat
 if EncodeDate(y+y_cnt, m + m_cnt + 1, d) < date2 then
   Inc(m_cnt) else
   Break;
until False; // целых месяцев

d_cnt := Trunc(date2 - EncodeDate(y+y_cnt, m + m_cnt, 0) );


 
evvcom ©   (2005-09-20 14:57) [6]


> Откуда нам знать???

А как ты тогда собрался задачу компьютеру объяснять? Допустим у тебя получилось 35 дней. Дай ответ без приведения дельфовых функций сколько это месяцев и дней?



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

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

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1127141224
jeka_t
2005-09-19 18:47
2005.10.09
Как распечатать программно файл печати (PLT, PRN)?


14-1126871669
Vlad Oshin
2005-09-16 15:54
2005.10.09
тоже Пятничная загадка


4-1123766179
Dmitriy G.
2005-08-11 17:16
2005.10.09
Запуск Dll в отдельном потоке


14-1126244151
КаПиБаРа
2005-09-09 09:35
2005.10.09
Задачка про муравья


1-1127242434
Pasha L
2005-09-20 22:53
2005.10.09
компилятор Дельфи