Помощь - Поиск - Пользователи - Календарь
Полная версия: Посчитать возраст
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Крастb
Здраствуйте. Мне необходимо посчитать разницу между двумя датами. Разница должна быть в полных годах.
Например 05.05.1991 и 05.12.1992. Полных лет - 1.

Делаю так
Код
day1 := DateTimePicker2.Date;
day2 := DateTimePicker1.Date;
diff := day2 - day1;
ShowMessage('day2 - day1 = '+FloatToStr(diff)+' days');


Но не нравится так. Хотелось бы получать ответ в точном возрасте. (Возраст = 14 лет)
И как "запретить" ввод даты например 1900?
andriano
Цитата(Крастb @ 16.12.2009 5:55) *
Хотелось бы получать ответ в точном возрасте. (Возраст = 14 лет)
То есть возраст, выраженный в годах, точнее возраста, выраженного в днях?
Цитата
И как "запретить" ввод даты например 1900?
Ну, например, провести в Государственной Думе закон о запрещении 1900 года. Или что значит "запретить"?
volvo
Цитата
Но не нравится так. Хотелось бы получать ответ в точном возрасте.
Вообще-то функции от SecondsBetween до YearsBetween не просто так сделаны:
  ShowMessage(
Format('%s - %s -> %d years',
[DateToStr(day1), DateToStr(day2),
Abs(YearsBetween(day1, day2))]
)
);
Не забудь подключить DateUtils...

Цитата
И как "запретить" ввод даты например 1900?
Для этого у DateTimePicker-а есть свойства MinDate/MaxDate.
Крастb
Цитата(volvo @ 16.12.2009 15:07) *

Вообще-то функции от SecondsBetween до YearsBetween не просто так сделаны:
  ShowMessage(
Format('%s - %s -> %d years',
[DateToStr(day1), DateToStr(day2),
Abs(YearsBetween(day1, day2))]
)
);
Не забудь подключить DateUtils...

Для этого у DateTimePicker-а есть свойства MinDate/MaxDate.

спасибо
Крастb
DateUtils не могу подключить почему то
ошибка: Identifier redeclared: 'DateUtils'
Ozzя
Что значит "не могу..."?

uses DateUtils;
...
{твоя программа}
...
volvo
Цитата
ошибка: Identifier redeclared: 'DateUtils'
, похоже ты дважды его подключаешь, или описываешь как-то неправильно, но идентификатор DateUtils у тебя в программе встречается больше одного раза...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.