sexta-feira, 29 de maio de 2015

Programa em Pascal que calcula datas

{
Curso        : An lise e Desenvolvimento de Sistemas
Turma        : Tarde
Professor    : Aka
Aluno        : Lucas
Matr¡cula    : 12200935
Data         : 28/09/2012

Programa     EP01.pas - O AmanhÆ

Objetivo:    O programa recebe uma data e imprime o dia seguinte.

Descri‡Æo do Programa:
          A data dever  estar no formato (dd mm aaaa) e ser  impresso o dia seguinte

          Ser  feita a consistˆncia sobre a data:
          1. Meses com 30 ou 31 dias
          2. Fevereiro (28 ou 29 dias). Ano bissexto: ser  verificado se o ano ‚ m£ltiplo
             de 4 mas nÆo de 100, ou se ‚ m£ltiplo de 400.
}
program ep01;
var
dia,mes,ano,ds,ms,as,im,am4,am100,am400,ab: integer;
begin
write ('Entre com uma data: dd mm aaaa: ');
readln (dia,mes,ano);
If (dia<1) or (dia>31) or (mes<1) or (mes>12) then begin
writeln ('Data inv lida');
exit;
end;
am4:=ano-ano div 4*4;
am100:=ano-ano div 100*100;
am400:=ano-ano div 400*400;
If (am4=0) and (am100<>0) or (am400=0) then
ab:=1
Else
ab:=0;
If (mes=4) or (mes=6) or (mes=9) or (mes=11) then
im:=0;
If (mes=1) or (mes=3) or (mes=5) or (mes=7) or (mes=8) or (mes=10) or (mes=12) then
im:=1;
If (mes=2) then
im:=2;
If (mes=2) and (ab=1) then
im:=3;
If (im=2) and (dia>28) then begin
writeln ('Data inv lida');
exit;
end;
If (im=0) and (dia=31) then begin
writeln ('Data inv lida');
exit;
end;
If (im=3) and (dia>29) then begin
writeln ('Data inv lida');
exit;
end;
If (dia=28) and (im=2) or (dia=30) and (im=0) or (dia=31) and (im=1) or (dia=29) and (im=3) then
ds:=1
Else
ds:=dia+1;
If ds=1 then
ms:=mes+1
Else
ms:=mes;
If (mes=12) and (ms=13) then begin
as:=ano+1;
ms:=1;
end
Else
as:=ano;
writeln (ds,'/',ms,'/',as);

end.

Nenhum comentário:

Postar um comentário