|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.03.2009, 08:13 | #1 |
Пользователь
Регистрация: 02.07.2008
Сообщений: 68
|
Как прибавить год к текущей дате
Здравствуйте, подскажите мне как сделать так, что если сегодняшняя дата равна дате в DateTimePicker, то к дате в DateTimePicker прибавляется год(т.е. сёдня 23 марта 2009, а в DayeTimePicker до сегодняшнего дня была дата 23 марта 2009, а сегодня стала та же дата тока 2010 года)
|
23.03.2009, 08:21 | #2 |
delphi-ст!
Форумчанин
Регистрация: 02.01.2009
Сообщений: 825
|
разбирай дату на день месяц год прибавляй к году 1 и собирай обратно!
вступлю в команду разработчиков ПО на Delphi
|
23.03.2009, 08:27 | #3 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Или используй функцию IncYear из модуля DateUtils.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
23.03.2009, 08:32 | #4 |
Злобстер
Форумчанин
Регистрация: 19.03.2009
Сообщений: 134
|
Код:
От знаний ещё никто не умирал, но рисковать не стоит.
|
23.03.2009, 10:53 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не рекомендую пользоваться кодом от XuTpbIu
если дата 29.02.2008 — то получится Exception при попытке преобразовать EncodeDate... |
23.03.2009, 11:38 | #6 |
Участник клуба
Регистрация: 11.01.2009
Сообщений: 1,917
|
А если так :
Код:
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
|
23.03.2009, 12:04 | #7 |
Злобстер
Форумчанин
Регистрация: 19.03.2009
Сообщений: 134
|
Serge_Bliznykov
Хм... Вы правы. Тогда вопрос. А какая дата должна выводиться в случае если у нас действительно 29.02 сегодня?
От знаний ещё никто не умирал, но рисковать не стоит.
|
23.03.2009, 12:44 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Проще всего вычислить 01.03, а потом отнять единичку - тогда получите последнее число февраля без эксепшена...
|
23.03.2009, 13:22 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну лучше всего пользоваться готовой функцией IncYear, как верно посоветовал Andrei в #3 (хотя бы из JEDI - JvDateUtil.pas)
Эта функция сводится к вызову: function IncDate(ADate: TDateTime; Days, Months, Years: Integer): TDateTime; и корректно отрабатывает как увеличение, так и уменьшение на заданное число дней/месяцев/лет. по годам там так (то, что связано с днями/месяцами опускаю): Код:
Код:
|
23.03.2009, 19:05 | #10 |
Злобстер
Форумчанин
Регистрация: 19.03.2009
Сообщений: 134
|
А зачем из JEDI? Модуль DateUtils как сказал Andrei и так есть
От знаний ещё никто не умирал, но рисковать не стоит.
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан файл с различными датами.в дате число,месяц и год.Найти весеннюю дату. | JiLiYa | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 26.12.2008 15:20 |
Как прибавить привлекательности сделанной программе | Arassir | Свободное общение | 5 | 09.11.2008 22:20 |
Как из TDBDateTimeEditEh получить отдельно день, месяц и год? | HIC | БД в Delphi | 2 | 31.10.2008 17:24 |
Открытие Excel файла на текущей дате | Million | Microsoft Office Excel | 2 | 04.09.2008 20:37 |
Открытие Excel файла на текущей дате | Million | Помощь студентам | 1 | 04.09.2008 06:44 |