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

Вниз

Как посчитать сколько прошло ГГГГ.ММ.ДД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
15-1157318987
Real
2006-09-04 01:29
2006.09.24
О влиянии гороскопа на интересы


1-1155316602
wipr
2006-08-11 21:16
2006.09.24
Как изменить определенный байт в файле


15-1157346728
Тыгыдым
2006-09-04 09:12
2006.09.24
DLL не работает :(


4-1148406407
Донской
2006-05-23 21:46
2006.09.24
Двухголовая машина


15-1157294188
Konstantin555
2006-09-03 18:36
2006.09.24
Где можно узнать - что обозначают %3A,%2F.... в HTML?