Главная страница
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.221 c
14-1126875653
infom
2005-09-16 17:00
2005.10.09
Защитить программу с исходниками от распространения...


3-1125310015
Term
2005-08-29 14:06
2005.10.09
Использование IBStoredProc


6-1118676712
incX
2005-06-13 19:31
2005.10.09
Проблемы с Indy 10


14-1127044917
Yeg
2005-09-18 16:01
2005.10.09
Помогите найти D(y)...


11-1107951281
Alec
2005-02-09 15:14
2005.10.09
Как изменить Handle