Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 20:45   #1
kykysya
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 32
Восклицание Разница между датами

Помогите написать процедуру которая считает года, когда есть дата рождения и поточная дата.Заранее спасибо!
kykysya вне форума Ответить с цитированием
Старый 25.03.2009, 21:39   #2
program123
Подтвердите свой е-майл
 
Регистрация: 12.02.2009
Сообщений: 144
По умолчанию

Не совсем понял вопрос. Что значит когда есть "дата рождения" и "поточная дата" ?
program123 вне форума Ответить с цитированием
Старый 25.03.2009, 21:40   #3
Joe_Tribbiani
Форумчанин
 
Аватар для Joe_Tribbiani
 
Регистрация: 14.02.2009
Сообщений: 110
По умолчанию

http://www.programmersclub.ru/datetimeanton/
Joe_Tribbiani вне форума Ответить с цитированием
Старый 25.03.2009, 22:10   #4
kykysya
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 32
По умолчанию

Что значит дата рождение например я ввела 23.11.1988 а сейчас дата 25.03.2009. и дана функция должна посчитать сколько мне лет!
kykysya вне форума Ответить с цитированием
Старый 26.03.2009, 06:19   #5
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Вам поможет функция YearsBetween из модуля DateUtils.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 26.03.2009, 09:32   #6
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Хм... В хелпе то ли баг, то ли я снова косячу:
Цитата:
Thus, for example, YearsBetween reports the difference between Jan 1 and Dec 31 as 0 on non-leap years and 1 on leap years.
Но когда просто проверил, то вычисляет корректно.
Как ни крути, но
Код:
YearsBetween(Trunc(StrToDate('1.1.2004')), Trunc(StrToDate('31.12.2004'))) = 0
Чувствую подвох.
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 26.03.2009, 09:37   #7
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

вот из delphiworld пример!
Код:
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
  begin
    Result := 0;
  end
  else
  begin
    Result := CurrentYear - Year;
    if (Month > CurrentMonth) then
      Dec(Result)
    else
    begin
      if Month = CurrentMonth then
        if (Day > CurrentDay) then
          Dec(Result);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := Format('Your age is %d',
    [CalculateAge(StrToDate('01.01.1903'), Date)]);
end;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 12:17   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от XuTpbIu Посмотреть сообщение
Чувствую подвох.
ваще-то логично, что функа возвращает кол-во целых лет между датами
soleil@mmc вне форума Ответить с цитированием
Старый 26.03.2009, 18:22   #9
kykysya
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 32
По умолчанию

Спасибо за помощь, буду смотреть, пробовать!
kykysya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++: найти число дней между 2 датами kissel Помощь студентам 2 15.03.2009 17:18
Разница между динамическим массивом и нединамическим. Stager Общие вопросы C/C++ 1 05.01.2009 22:32
Как задать интервал между датами в фильтре Леон Microsoft Office Access 2 22.10.2008 11:16
Какая разница между MS Visual и C++ Fanta_Clour Софт 2 09.03.2008 18:33
Разница между датами deenka БД в Delphi 3 31.01.2008 13:21