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