Кто что сможет подскажите как сделать что верно работала.
Код
Program z2;
uses crt ;
var cor : boolean ;
d,m,g,q,i:Integer;
Procedure InputDate (var d,m,g : integer; var cor : boolean);
begin
i:=g div 4;
writeln('Vvedite datu'); readln(d,m,g);
cor:= (d>=1) and (d<=31) and (m>=1) and (m<=12) and (g>=1582) and (g<=4903);
Case m of
4,6,9,11: If d>30 then
begin
cor:= not cor;
writeln('V atom masiace 30 dnei')
end;
2 : If i=0 then
begin
If d>29 then
begin
cor:=not cor;
writeln('V atom masiace 29 dnei')
end;
end;
else
If d>28 then
begin
cor:=not cor;
writeln('V atom masiace 28 dnei')
end;
end;
end;
Procedure WriteDay (d,m,g : integer);
const dni_nedeli : array[0..6] of string[11]=('Vos','Pon','Vtor','Sreda','Chetverg','Piatnica','Subota');
var s,F :integer;
begin
if m<3
then begin m:=m+10; g:=g-1 end
else m:= m-2;
s:= g div 100;
g:=g mod 100;
F:=abs(trunc(2.6*m-0.2)+d+g div 4 +g+s div 4-2*s) mod 7;
writeln(dni_nedeli[F])
end;
BEGIN
repeat
clrscr;
InputDate(d,m,g,cor);
if cor then WriteDay(d,m,g);
writeln('Dlia vixoda 2 dlia povtora 1');
readln;
until q=2;
writeln('Dlia vixoda Enter.');
readln;
END.