В тот день мы повторяли условные операторы, не сложно было догадаться, что именно их и нужно было использовать при решении задачи.
Вот мой вариант, вроде бы правильный. Пост выше полностью объясняет решение, так что вроде бы непонятного ничего не должно быть =).
Code
program u0811;
uses dos; {нужен для того чтобы текущую дату брать из системы}
var d,m,y,w:word; {переменная w(номер дня недели) нужна лишь для того, чтобы без ошибок взять дату, ах да, тип word, это одно из условий оператора выборки даты =( }
d1,m1,m2,y1,y2:integer;
BEGIN
GetDate(y,m,d,w); {берем =)}
writeln('Текущая дата: ',d,' ',m,' ',y);
writeln('Пожалуйста введите дату своего рождения (ДД ММ ГГГГ):');
readln(d1,m1,y1);
if m>=m1 then
begin
y2:=y-y1;
m2:=m-m1;
end
else
begin
y2:=y-y1-1;
m2:=12+m-m1;
end;
if d<d1 then
begin
m2:=m2-1;
end;
m2:=m2+y2*12;
writeln('Вы прожили ',m2,' Полных месяцев.');
readln;
END.
P.S. - решил прописать выборку текущей даты из системы, по этому в местах где могут возникнуть вопросы я написал комментарии.