IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Посчитать возраст
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: Саша

Репутация: -  0  +


Здраствуйте. Мне необходимо посчитать разницу между двумя датами. Разница должна быть в полных годах.
Например 05.05.1991 и 05.12.1992. Полных лет - 1.

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


Но не нравится так. Хотелось бы получать ответ в точном возрасте. (Возраст = 14 лет)
И как "запретить" ввод даты например 1900?

Сообщение отредактировано: Крастb -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(Крастb @ 16.12.2009 5:55) *
Хотелось бы получать ответ в точном возрасте. (Возраст = 14 лет)
То есть возраст, выраженный в годах, точнее возраста, выраженного в днях?
Цитата
И как "запретить" ввод даты например 1900?
Ну, например, провести в Государственной Думе закон о запрещении 1900 года. Или что значит "запретить"?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






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

Цитата
И как "запретить" ввод даты например 1900?
Для этого у DateTimePicker-а есть свойства MinDate/MaxDate.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: Саша

Репутация: -  0  +


Цитата(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.

спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: Саша

Репутация: -  0  +


DateUtils не могу подключить почему то
ошибка: Identifier redeclared: 'DateUtils'

Сообщение отредактировано: Крастb -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Что значит "не могу..."?

uses DateUtils;
...
{твоя программа}
...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
ошибка: Identifier redeclared: 'DateUtils'
, похоже ты дважды его подключаешь, или описываешь как-то неправильно, но идентификатор DateUtils у тебя в программе встречается больше одного раза...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.10.2020 7:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name