Показать сообщение отдельно
  #7  
Старый 01.12.2012, 03:55
Аватар для Sm1t1k
Sm1t1k Sm1t1k вне форума
Прохожий
 
Регистрация: 29.11.2012
Адрес: Хабаровск
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Чтоб упростить последующие вычисления хорошо бы добавить к таблице колонку "Возраст" и заполнять её данными из поля "Дата рождения" с помощью вот этого:
Код:
function CalculateAge(Birthday, CurrentDate: TDate): Integer;
var
Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;
begin
DecodeDate(Birthday, Year, Month, Day);
DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);
if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then
Result:= 0 else
 begin
   Result:= CurrentYear - Year;
   if (Month > CurrentMonth) then Dec(Result) else
   if (Month = CurrentMonth) and (Day > CurrentDay) then Dec(Result);
 end;
// ©Drkb::04233
 end;
Пример вызова:
Код:
Label1.Caption:= Format('Петров М.А. 12.03.1978 (%d)', [CalculateAge(StrToDate('12.03.1978'), Date)]);
Фильтровать будет проще, да и нагляднее так юзеру.
Спасибо за вариант, но мне нельзя ничего менять, всё должно делатся в StringGrid. Такие вот требования.
Ответить с цитированием