Главная страница
    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.47 MB
Время: 0.041 c
1-1155628054
трям
2006-08-15 11:47
2006.09.24
Как определить Rect выделенной ячейки в DBGrid ?


2-1157169755
Viktop
2006-09-02 08:02
2006.09.24
Отправка SMS на Биллайн


15-1157537474
Alarm
2006-09-06 14:11
2006.09.24
CopyRight на CD


3-1153501003
Konnik
2006-07-21 20:56
2006.09.24
Разграничение транзакций стандартными компонентами IB


15-1157208021
santey
2006-09-02 18:40
2006.09.24
сохранение структуры(записи)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский