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

Вниз

Математические действия с датой (TdateTime)   Найти похожие ветки 

 
Евгений-Зеленоград   (2002-03-29 21:44) [0]

Привет ВСЕМ! :?)) Много брожу, всех спрашиваю и никто толком не может ответить, как сделать приращение к дате (к примеру 10.11.2002)Необходимо сделать приращение к году вперед на пять лет, т.е. прибавить. Как вот это сделать ума не приложу! Конечно нужно отделить год от основной даты (декодировать) и после только делать математичесое преобразование, но как?
Заранее всем гран мерси.............


 
vuk ©   (2002-03-29 21:48) [1]

см. DecodeDate, EncodeDate


 
Anatoly Podgoretsky ©   (2002-03-29 21:54) [2]

Да ответ на простой вопрос, сколько дней в 5 годах и прибавь это количество.
Можно и через выше привденные функции, только будь поосторожнее с 29 апреля


 
Anatoly Podgoretsky ©   (2002-03-29 21:59) [3]

февраля


 
mukha   (2002-03-30 07:43) [4]

Тип TDateTime совместим с форматом вещественных чисел. Например: к сегодняшней дате надо добавить пять лет. Label1.Caption:=DateToStr(Date+1826); 1826=365x5+1. +1 потому, что из пяти лет один будет высокосным (в феврале 29 дней). Возможно, что за некий промежуток пяти лет попадёт и два высокосных года. Смотри по календарю.


 
Anatoly Podgoretsky ©   (2002-03-30 12:21) [5]

Я рискну предположить, что может пройти и 0 високосных лет


 
mukha   (2002-03-30 12:40) [6]

Anatoly Podgoretsky

Учитывая, что высокосный год - это каждый четвёртый год, такого не случится. Поэтому в промежуток 5 лет попадёт как минимум один высокосный год.При промежутке менее 5 лет - вполне возможно.


 
MBo ©   (2002-03-30 12:44) [7]

mukha
высокосный год - это каждый четвёртый год
не всегда. 1900 - нет.


 
drpass ©   (2002-03-30 12:54) [8]

Високосный год - год, который делится без остатка на 4 и не делится на 100, либо делится на 400. Но к чему вся эта математика, если можно взять DecodeDate+EncodeDate?


 
mukha   (2002-03-30 15:32) [9]

MBo

Я имел ввиду обозримое будущее. А в общем - согласен.


 
Anatoly Podgoretsky ©   (2002-03-30 15:55) [10]

mukha (30.03.02 12:40)
Извини, но ты неправильно учитываешь, возьми исходную дату например 12.02.1998 года и тебе все станет ясно, ч в данном интервеле 9 високосных лет.

drpass © (30.03.02 12:54)
Хоть прибавление, хоть декодирование - это все равно не устаняет проблемы 29 февраля, требуется анализ


 
mukha   (2002-03-30 16:30) [11]

Anatoly Podgoretsky © (30.03.02 15:55)

Я имел ввиду только интервал в 5 лет. И только на ближайшее будущее.


 
Anatoly Podgoretsky ©   (2002-03-30 16:35) [12]

Что у тебя в виду известно только телепатов, и на какое будущее тоже. А вот те которые скажем в 93 году тоже так утверждали, поняли это в 2000 году.
Насчет интервала в 5 лет и я все время говорю про него. Проблема 29 февраля существует в каждом 5 летнем интервале вне зависимости от ближайшего будущего.


 
Erlend ©   (2002-03-30 16:42) [13]

Unit DateUtils

Category date/time routines

function IncYear(const AValue: TDateTime; const ANumberOfYears: Integer = 1): TDateTime;


 
Anatoly Podgoretsky ©   (2002-03-30 16:52) [14]

Как там с 29 февраля, все в порядке?


 
Erlend ©   (2002-03-30 16:57) [15]

IccYear учитывет высокосные года.


 
Erlend ©   (2002-03-30 16:58) [16]

IncYear - конечно
Есть ещё и IncMonth.


 
Anatoly Podgoretsky ©   (2002-03-30 17:01) [17]

Я знаю про все эти функции, просто они мне не нужны, тестирование на все возможные ошибки займет больще времени, чем написание своей


 
Дима2 ©   (2002-03-30 19:38) [18]

Знаю точно, что Time+Time проходит, вот только , если 23.58.59 +
00.02.00 то будет 00.01.59



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

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
14-32973
limon
2002-03-05 11:19
2002.04.11
Создание экземпляра класса по имени (ClassRef)


7-32995
Voldemar
2002-01-17 19:48
2002.04.11
Измерение загрузки и температуры процессора


3-32677
Gromozeka
2002-03-19 06:35
2002.04.11
Вставка данных в шаблон MS Word


3-32678
pusrg
2002-03-20 18:01
2002.04.11
Повреждение индексов в таблицах Paradox.


4-33013
dip56245
2002-01-31 16:28
2002.04.11
hooks