Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизКак посчитать сколько прошло ГГГГ.ММ.ДД Найти похожие ветки
← →
Mamochka © (2006-09-04 11:15) [0]Есть начальная дата, есть конечная дата, Вопрос: Как посчитать сколько прошло ГГГГ.ММ.ДД от начальной даты до конечной?
Спасибо :о)
← →
Ega23 © (2006-09-04 11:18) [1]Если Tdatetime - то вычитанием.
← →
MBo © (2006-09-04 11:18) [2]Вычитанием
← →
Mamochka © (2006-09-04 11:20) [3]
> Ega23 © (04.09.06 11:18) [1]
И он покажет например: 1 год 11 месяцев 22 дня
← →
Desdechado © (2006-09-04 11:24) [4]Mamochka © (04.09.06 11:20) [3]
Если бы годы были одинаковой длины и месяцы - тоже, то да. Но это невозможно, поэтому только в днях.
← →
Mamochka © (2006-09-04 11:26) [5]
> Desdechado © (04.09.06 11:24) [4]
хорошо, а как?
← →
Desdechado © (2006-09-04 11:30) [6]вычитанием
← →
Ega23 © (2006-09-04 11:33) [7]
> И он покажет например: 1 год 11 месяцев 22 дня
Что есть TDateTime? Целая часть - количество дней, прошедших с 30.12.1899. Дробная - часы-минуты-секунды-миллисекунды в рамках одного дня.
Вычитанием ты узнаешь разницу, как её потом в годы интерпретировать - твоё дело.
← →
MBo © (2006-09-04 11:34) [8]DateUtils.YearsBetween и т.п. функции
← →
Mamochka © (2006-09-04 11:42) [9]
> Ega23 © (04.09.06 11:33) [7]
вот смотри:
var a,b,c:TDateTime
begin
a:=Table1.FieldByName("Datain").AsDateTime; //Начальная дата
b:=Date; //Текущее значение даты
c:=b-c; //Получаем разницу
end;
так или нет, если так что дальше мне делать с "С"?
← →
Mamochka © (2006-09-04 11:43) [10]
> Ega23 © (04.09.06 11:33) [7]
ПОПРАВОЧКА :о)
вот смотри:
var a,b,c:TDateTime
begin
a:=Table1.FieldByName("Datain").AsDateTime; //Начальная дата
b:=Date; //Текущее значение даты
c:=b-a; //Получаем разницу
end;
так или нет, если так что дальше мне делать с "С"?
← →
Думкин © (2006-09-04 12:33) [11]> Mamochka © (04.09.06 11:43) [10]
Сколько в ваших терминах прошло
1. с 28 февраля 1992 года по 29 марта 1996 года?
2. с 28 февраля 1993 года по 29 марта 1994 года?
Почему?
← →
Ega23 © (2006-09-04 12:38) [12]
> так или нет, если так что дальше мне делать с "С"?
>
Чему равно C? Например, 584.0 Тогда ты сможешь смело сказать, что с a по b прошло 584 дня. Или 50457600 секунд.
← →
MBo © (2006-09-04 13:35) [13]из RXLib.DateUtil:
procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
{ Corrected by Anatoly A. Sanko (2:450/73) }
var
DtSwap: TDateTime;
Day1, Day2, Month1, Month2, Year1, Year2: Word;
begin
if Date1 > Date2 then begin
DtSwap := Date1;
Date1 := Date2;
Date2 := DtSwap;
end;
DecodeDate(Date1, Year1, Month1, Day1);
DecodeDate(Date2, Year2, Month2, Day2);
Years := Year2 - Year1;
Months := 0;
Days := 0;
if Month2 < Month1 then begin
Inc(Months, 12);
Dec(Years);
end;
Inc(Months, Month2 - Month1);
if Day2 < Day1 then begin
Inc(Days, DaysPerMonth(Year1, Month1));
if Months = 0 then begin
Dec(Years);
Months := 11;
end
else Dec(Months);
end;
Inc(Days, Day2 - Day1);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.066 c