Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

Как вычислить разницу в датах?   Найти похожие ветки 

 
caries   (2006-03-02 13:07) [0]

Подскажите, плз, как вычислить разницу в датах, т е в виде дни.месяцы.годы. Заранее спасибо)


 
TUser ©   (2006-03-02 13:11) [1]

DaysBetween


 
azl ©   (2006-03-02 13:11) [2]

DaysBetween


 
caries   (2006-03-02 13:15) [3]

спасибо)))


 
Desdechado ©   (2006-03-02 13:59) [4]

> в виде дни.месяцы.годы.
не получится, ибо месяцы и годы - разной длины
в каких тебе считать надо?


 
VICTOR_   (2006-03-02 23:28) [5]

Как вариант(схематично)
DeltaYear:=Year2-Year1;
if Month2>=Month1 then
 DeltaMonth:=Month2-Month1
else
begin
  DeltaMonth:=Month2-Month1+12;
  DeltaYear:=DeltaYear-1;
end;
if Day2>=Day1 then
 DeltaDay:=Day2-Day1
else
begin
  DeltaDay:=Day2-Day1+DaysPerMonth(Month1);//DaysPerMonth - необходимо написать функцию для получения количества дней в месяце
  DeltaMonth:=DeltaMonth-1;
end;


Только для улучшения точности вычисления разницы дней надо учитывать что если в обоих датах - последний день месяца - то разница в днях всегда будет равна 0.
Напр.
30 апреля - 31 марта = 0 дней
30 апреля - 30 марта = 0 дней
30 апреля - 29 марта = 1 день
29 апреля - 31 марта = -2 дня
29 апреля - 30 марта = -1 дня
31 мая - 30 апреля = 0 дней
31 мая - 29 апреля = 2 дня
30 мая - 30 апреля = 0 дней
30 мая - 29 апреля = 1 день


 
Германн ©   (2006-03-03 02:22) [6]


> Desdechado ©   (02.03.06 13:59) [4]
>
> > в виде дни.месяцы.годы.
> не получится, ибо месяцы и годы - разной длины
> в каких тебе считать надо?
>

Получится, если в разности используются реальные даты.  Но реализацию сего я не знаю.


 
Anatoly Podgoretsky ©   (2006-03-03 07:45) [7]

Германн ©   (03.03.06 02:22) [6]
Это я тебе подскажу, надо будет нарисовать таблицк соответствий на 365*365 и вторую 365*366



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
2-1142784849
perat
2006-03-19 19:14
2006.04.09
поиск и удаление пустых папок


3-1139486718
wezzz
2006-02-09 15:05
2006.04.09
Так работает ли BDE под Windows 2003 x64?


2-1142997974
soi
2006-03-22 06:26
2006.04.09
Программное изменение размера дочернего окна


1-1141473426
13
2006-03-04 14:57
2006.04.09
иконки в DrawGrid


15-1142888315
xlsn
2006-03-20 23:58
2006.04.09
WebMoney





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