|
#1
|
||||
|
||||
Сложный вопрос!
Я работаю щас с БД и у меня такая проблема возникла: создал вычисляемое поле "Возраст клиента" и мне надо чтобы вычислялся точный возраст путем вычитания из текущей даты даты рождения. Проблема в том что тип данных поля "Возраст клиента" - Smallint, а дата рождения - ну понятно DateTime. Я декодирую сегодняшнюю дату на число, месяц и год, а вот как вычесть дату рождения так, чтобы показывался точный возраст, т.е. если у клиента завтра днюха), то завтра в вычисляемом поле ему станет на год больше?
Пример обработчика события такой: procedure TDataModule3.Table5CalcFields(DataSet: TDataSet); var Year, Month, Day:Word; begin DecodeDate(Date,Year,Month,Day); Table5Age.Value:=Year-???? <--Что здесь? end; Там где ???? - название поля "Table5Data_rozhdenya" Что мне сделать помогите плиз!!! Оч нужно и срочно |
#2
|
||||
|
||||
Ну и делайте простую математическую операцию из текушей даты вычесть дату рождения клиента. Получите некую дату, где ее год будет содержать возраст клиента - 1900 т.е.
Age := YearOf(Now-BirthDay)-1900; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
Ругается что YearOF - неизвестный идентификатор
|
#4
|
||||
|
||||
Подключите модуль DateUtils
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |