|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Прибавить к дате год и вычесть 1 день
Добрый день.
Код:
procedure Tf_Inform.JvDBDateEdit1Exit(Sender: TObject); var Day, Moth, Year: Word; myDate : TDateTime; begin DecodeDate(JvDBDateEdit1.Date, Year, Moth, Day); Year := Year + 1; Day := Day - 1; myDate := EncodeDate(Year, Moth, Day); JvDBDateEdit2.Date := myDate; end; p.s. если так Код:
procedure Tf_Inform.JvDBDateEdit1Exit(Sender: TObject); var myDate : TDateTime; begin myDate := JvDBDateEdit1.Date; myDate := myDate + 364; JvDBDateEdit2.Date := myDate; end; Последний раз редактировалось DOR, 01.05.2013 в 18:04. |
#2
|
|||
|
|||
Странно, у меня все работает:
Код:
procedure TForm1.Button1Click(Sender: TObject); var myDate : TDate; begin myDate:=Now; myDate:=myDate + 364; ShowMessage(DateToStr(myDate)); end; Код:
myDate:=Trunc(myDate) + 364; Все смелые до begin... Последний раз редактировалось DrGeorg, 02.05.2013 в 09:06. |
#3
|
|||
|
|||
Ваш пример не учитывает високосные года.
Извратился так, для моей задачи сгодится Код:
procedure Tf_Inform.JvDBDateEdit1Exit(Sender: TObject); var Year, Moth, Day: Word; myDate : TDate; begin DecodeDate(JvDBDateEdit1.Date, Year, Moth, Day); myDate := JvDBDateEdit1.Date; if (Year = 2008) or (Year = 2012) or (Year = 2016) or (Year = 2020) then begin if Moth <= 2 then begin myDate := myDate + 365; JvDBDateEdit2.Date := myDate; end else begin myDate := myDate + 364; JvDBDateEdit2.Date := myDate; end; end else begin myDate := myDate + 364; JvDBDateEdit2.Date := myDate; end; end; |
#4
|
||||
|
||||
Чего творите, всё намного проще
Код:
uses DateUtils; ... var myDate : TDateTime; begin // прибавить к myDate один год myDate := IncYear(myDate); // прибавить пять лет, итд. myDate := IncYear(myDate, 5); // вычесть пять лет myDate := IncYear(myDate, -5); end; З.Ы. Упс, про один день сразу не заметил, но это тоже не сложно Код:
// прибавить день myDate := IncDay(myDate); // убавить на один день myDate := IncDay(myDate, -1); Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 02.05.2013 в 13:27. |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
DOR (05.05.2013)
|