8 de jul. de 2010

Calcula dia da semana

program diaSemana;
  var dia: integer;
  mes: integer;
  ano: integer;

  function calculaDiaSemana(dia: integer; mes: integer; ano: integer): String;
    var seculo: integer;
         semana: integer;
         MDS: integer;
        nomeDia: String;
    begin

      seculo := ano div 100;

      if (mes < 3) then
        begin
          mes := mes + 12;
          ano := ano - 1;
        end;

      ano := ano mod 100;

      semana := dia + (((mes+1)*26) div 10) + ano + (ano div 4) + (seculo div 4) + (5*seculo);

      MDS := semana mod 7;

      if MDS = 0 then
        nomeDia := 'Sábado'
      else if MDS = 1 then
        nomeDia := 'Domingo'
      else if MDS = 2 then
        nomeDia := 'Segunda-Feira'
      else if MDS = 3 then
        nomeDia := 'Terça-Feira'
      else if MDS = 4 then
        nomeDia := 'Quarta-Feira'
      else if MDS = 5 then
        nomeDia := 'Quinta-Feira'
      else if MDS = 6 then
        nomeDia := 'Sexta-Feira';

      calculaDiaSemana := nomeDia;
   end;

   begin
     writeln('Entre com o dia: ');
     readln(dia);
     writeln('Entre com o mes: ');
     readln(mes);
     writeln('Entre com o ano: ');
     readln(ano);

     if ((dia >= 1) and (dia <= 31) and (mes >= 1) and (mes <= 12) and (ano > 1582)) then
       writeln('O dia da semana é: ', calculaDiaSemana(dia, mes, ano))
     else
       writeln('Data inválida');

  end.

Nenhum comentário:

Postar um comentário

Deixe seu comentário aqui!