Определить дату следующего дня + квартал (с использованием перечисляемого типа) - Pascal ABC

Формулировка задачи:

Помогите пожалуйста, все выводит, кроме кварталов, вот код:
var d,m,g,k:integer;
    b:boolean;
begin
write('Введите день ');
readln(d);
write('Введите месяц ');
readln(m);
write('Введите год ');
readln(g);
b:=true;
case m of
 1,3,5,7,8,10,12: if d<31 then d:=d+1 else
                   if d=31 then
                    begin
                    d:=1;
                    if m<12 then m:=m+1 else
                     begin
                     m:=1;
                     g:=g+1;
                     end;
                    end
                   else 
                   b:=false;
 4,6,9,11: if d<30 then d:=d+1 else
            if d=30 then
             begin
             d:=1;
             m:=m+1;
             end
            else 
            b:=false;
 2:if g mod 4=0 then
    if d<29 then d:=d+1 else
     if d=29 then
      begin
      d:=1;
      m:=m+1;
      end
     else 
     b:=false
   else
    if d<28 then d:=d+1 else
     if d=28 then
      begin
      d:=1;
      m:=m+1;
      end
     else 
     b:=false;
 else 
 b:=false;
 case k of
 1,2,3: if m then -Вот здесь ступор- else
 writeln ('Квартал I')
 4,5,6: if m then -Вот здесь ступор- else
 writeln ('Квартал II')
 7,8,9: if m then -Вот здесь ступор- else
 writeln('Квартал III')
 10,11,12: if m then -Вот здесь ступор- else
 writeln ('Квартал IV')
end;
if b then writeln('Следующий день ',d,'.',m,'.',g)
else writeln('Неверно введена дата');
end;

Код к задаче: «Определить дату следующего дня + квартал (с использованием перечисляемого типа) - Pascal ABC»

textual
var d,m,g,k:integer;
    b:boolean;
begin
write('Введите день ');
readln(d);
write('Введите месяц ');
readln(m);
write('Введите год ');
readln(g);
b:=true;
case m of
 1,3,5,7,8,10,12: if d<31 then d:=d+1 else
                   if d=31 then
                    begin
                    d:=1;
                    if m<12 then m:=m+1 else
                     begin
                     m:=1;
                     g:=g+1;
                     end;
                    end
                   else
                   b:=false;
 4,6,9,11: if d<30 then d:=d+1 else
            if d=30 then
             begin
             d:=1;
             m:=m+1;
             end
            else
            b:=false;
 2:if g mod 4=0 then
    if d<29 then d:=d+1 else
     if d=29 then
      begin
      d:=1;
      m:=m+1;
      end
     else
     b:=false
   else
    if d<28 then d:=d+1 else
     if d=28 then
      begin
      d:=1;
      m:=m+1;
      end
     else
     b:=false;
 else
 b:=false;
 end;
 case m of
 1,2,3: k:=1;
 4,5,6: k:=2;
 7,8,9: k:=3;
 else k:=4;
 end;
if b then writeln('Следующая дата ',d,'.',m,'.',g,' квартал ',k)
else writeln('Неверно введена дата');
end.

14   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ