Автор: Крастb 16.12.2009 9:55
Здраствуйте. Мне необходимо посчитать разницу между двумя датами. Разница должна быть в полных годах. Например 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 16.12.2009 13:00
Цитата(Крастb @ 16.12.2009 5:55)
Хотелось бы получать ответ в точном возрасте. (Возраст = 14 лет)
То есть возраст, выраженный в годах, точнее возраста, выраженного в днях?
Цитата
И как "запретить" ввод даты например 1900?
Ну, например, провести в Государственной Думе закон о запрещении 1900 года. Или что значит "запретить"?
Автор: volvo 16.12.2009 19:07
Цитата
Но не нравится так. Хотелось бы получать ответ в точном возрасте.
Вообще-то функции от SecondsBetween до YearsBetween не просто так сделаны:
ShowMessage( Format('%s - %s -> %d years', [DateToStr(day1), DateToStr(day2), Abs(YearsBetween(day1, day2))] ) );
Не забудь подключить DateUtils...
Цитата
И как "запретить" ввод даты например 1900?
Для этого у DateTimePicker-а есть свойства MinDate/MaxDate.
Автор: Крастb 17.12.2009 7:08
Цитата(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 19.12.2009 8:13
DateUtils не могу подключить почему то ошибка: Identifier redeclared: 'DateUtils'
Автор: Ozzя 19.12.2009 13:59
Что значит "не могу..."? uses DateUtils; ... {твоя программа} ...
Автор: volvo 19.12.2009 16:15
Цитата
ошибка: Identifier redeclared : 'DateUtils'
, похоже ты дважды его подключаешь, или описываешь как-то неправильно, но идентификатор DateUtils у тебя в программе встречается больше одного раза...