Technologie de l'Informatique : Forum des 1ti
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -45%
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre ...
Voir le deal
339 €

Dev Pascal : Date (normale et année bissextile)

2 participants

Aller en bas

Dev Pascal : Date (normale et année bissextile) Empty Dev Pascal : Date (normale et année bissextile)

Message  RDI 9/10/2007, 17:51

Le programme doit demander la date d'aujourd'hui et doit être capable de donner celle du lendemain. Le premier module ne tient pas compte des années bissextiles.

Réponse :

Code:

program Annee;
 
var
  a, b, c:integer;
 
begin
 writeln('Quel jour sommes-nous aujourd hui ?');
 readln(a);
 writeln('Quel mois sommes-nous aujourd hui ?');
 readln(b);
 writeln('Quelle année sommes-nous aujourd hui ?');
 readln(c);
 writeln('nous sommes le ', a);
 writeln('aujourd hui nous sommes le ', a,'/', b, '/', c);
if (a=28) and (b=2) then
 begin
  writeln('demain nous serons le 1/3/', c);
  readln;
 end
else
if (a=31) and (b=12) then
 begin
  writeln('demain nous serons le 1/1/', c+1, ' bonne année !');
  readln;
 end
else
if b>12 then
 begin
  writeln('Le mois ne correspond pas');
  readln;
 end
else
  if (b=1) or (b=3) or (b=5) or (b=7) or (b=8) or (b=10) or (b=12) then
    begin
    if a>31 then
      begin
      writeln('fatal error, la date ne correspond pas');
      readln;
      end
    else
      begin
      if a=31 then
        begin
        writeln('demain nous serons le 1/', b+1, '/', c);
        readln;
        end
        else
          begin
          writeln('demain nous serons le ', a+1, '/', b, '/', c);
          readln;
          end
      end
    end
else
  if (b=2) or (b=4) or (b=6) or (b=9) or (b=11) then
    begin
    if a>30 then
      begin
      writeln('fatal error, la date ne correspond pas');
      readln;
      end
    else
      begin
      if a=30 then
        begin
        writeln('demain nous serons le 1/', b+1, '/', c);
        readln;
        end
        else
          begin
          writeln('demain nous serons le ', a+1, '/', b, '/', c);
          readln;
          end
      end
    end
end.

Malheureusement je ne possède pas encore le module comptant les années bissextiles, si quelqu'un se porte volontaire ?
RDI
RDI
Accro
Accro

Masculin Nombre de messages : 153
Age : 35
Localisation : Nivelles
Classe : TL2
Date d'inscription : 09/10/2007

Revenir en haut Aller en bas

Dev Pascal : Date (normale et année bissextile) Empty Re: Dev Pascal : Date (normale et année bissextile)

Message  Will 9/10/2007, 18:53

Voici pour ceux qui veulent une version des années bisextiles...
Il marche sans aucun problème!!!

Code:
program bisextile;
var d,m,y: integer ;

begin
    writeln('Quel jour sommes-nous? (1-31)');
    readln(d);
    writeln('Quel mois sommes-nous? (1-12)');
    readln(m);
    writeln('Quelle anne sommes-nous?');
    readln(y);
    if (m=1) or (m=3) or (m=5) or (m=7) or (m=8) or (m=10) or (m=12) then
    begin
        if d=31 then
        begin
            d := 1;
            if m=12 then
            begin
                  m := 1;
                  y := y+1;
            end
            else
                m := m+1;
        end
        else
            d := d+1;
    end
    else
    begin
          if (m=4) or (m=6) or (m=9) or (m=11) then
          begin
              if d=30 then
              begin
                    d := 1;
                    m := m+1;
              end
              else
                  d := d+1;
          end
          else
          begin
              if d=29 then
              begin
                    d := 1;
                    m := m+1;
              end
              else
              begin
                    if d=28 then
                    begin
                        if y mod 400=0 then
                            d := 29
                        else
                        begin
                              if y mod 100=0 then
                              begin
                                  d := 1;
                                  m := m+1;
                              end
                              else
                              begin
                                  if y mod 4=0 then
                                    d := 29
                                  else
                                  begin
                                        d := 1;
                                        m := m+1;
                                  end
                              end
                        end
                  end
                  else
                        d := d+1;
          end
    end;
    writeln('Demain nous serons le ',d,'/',m,'/',y);
    readln;
end;
end.
Will
Will
Habitué
Habitué

Masculin Nombre de messages : 74
Age : 37
Localisation : Arlon
Classe : 1TL2
Date d'inscription : 08/10/2007

http://www.hgevent.be

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum