Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1157395719
Колдун
2006-09-04 22:48
2006.09.24
Рисование поверх всех окон


2-1157048371
Интересующийся
2006-08-31 22:19
2006.09.24
Две копии приложения и одна таблица


3-1153825880
Ugol
2006-07-25 15:11
2006.09.24
Проблема с печатью


2-1157452122
KItDod
2006-09-05 14:28
2006.09.24
вопрос


11-1132663743
BaryV
2005-11-22 15:49
2006.09.24
Как скрыть у TabControl вкладки?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский