Извини, что слишком большой код, но зато показывает любую дату. Со всеми нюансами. Даже если в июле и августе по 31 дню, а в феврале 28)
var a,b,c:integer; d:string;
begin write ('Введите сегодняшнее число '); readln (a); write ('Введите номер месяца '); readln(d); if (d='5') or (d='05') or (d='7') or (d='07') or (d='10') or (d='12') then begin if a<31 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',30,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; if (d='4') or (d='04') or (d='6') or (d='06') or (d='9') or (d='09') or (d='11') then begin if a<30 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',31,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; if (d='2') or (d='2') then begin if a<28 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',31,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; if (d='3') or (d='03') then begin if a<31 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',28,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; if (d='1') or (d='01') then begin if a<31 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',31,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; if (d='8') or (d='08') then begin if a<31 then begin b:=a-1; c:=a+1; if a<2 then begin writeln ('Вчера было ',31,' число'); writeln ('Завтра будет ',c,' число'); end else begin writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',c,' число'); end; end else begin b:=a-1; writeln ('Вчера было ',b,' число'); writeln ('Завтра будет ',1,' число'); end; end; end.
Извини, что слишком большой код, но зато показывает любую дату. Со всеми нюансами. Даже если в июле и августе по 31 дню, а в феврале 28)
var a,b,c:integer;
d:string;
begin
write ('Введите сегодняшнее число '); readln (a);
write ('Введите номер месяца '); readln(d);
if (d='5') or (d='05') or (d='7') or (d='07') or (d='10') or (d='12') then
begin
if a<31 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',30,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
if (d='4') or (d='04') or (d='6') or (d='06') or (d='9') or (d='09') or (d='11') then
begin
if a<30 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',31,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
if (d='2') or (d='2') then
begin
if a<28 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',31,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
if (d='3') or (d='03') then
begin
if a<31 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',28,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
if (d='1') or (d='01') then
begin
if a<31 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',31,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
if (d='8') or (d='08') then
begin
if a<31 then
begin
b:=a-1;
c:=a+1;
if a<2 then
begin
writeln ('Вчера было ',31,' число');
writeln ('Завтра будет ',c,' число');
end
else begin
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',c,' число');
end;
end
else begin
b:=a-1;
writeln ('Вчера было ',b,' число');
writeln ('Завтра будет ',1,' число');
end;
end;
end.