Programme affichant le jour de Noel

Programme affichant le jour de Noel - C - Programmation

Marsh Posté le 23-09-2004 à 22:17:41    

Bjr a tous
j essaye d ecrire uin programme me permettant d afficher le jour (en chiffre et en lettres) ou tombe Noel quand l utilisateur rentre une annee
je pensai utiliser une boucle while  
 
mon probleme reside dans les annes bisextiles, je n arrive pas a creer la boucle qui me permette d incrementer  
 
Si vous avez une idee je suis preneur  
merci  :jap:

Reply

Marsh Posté le 23-09-2004 à 22:17:41   

Reply

Marsh Posté le 23-09-2004 à 22:20:35    

http://en.wikipedia.org/wiki/Calcu [...] f_the_Week


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 23-09-2004 à 22:21:25    

c'est une question d'algo, pas de C

Reply

Marsh Posté le 23-09-2004 à 22:23:09    

tout les problèmes d'algo vont dans la cat C voyons ! on code d'abord, on réfléchit ensuite :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 24-09-2004 à 04:30:23    

10 PRINT "25 décembre"

Reply

Marsh Posté le 24-09-2004 à 10:11:56    

LeGreg a écrit :

10 PRINT "25 décembre"


T'es sûr ? Je croyais que tous les programmes BASIC commençaient comme ça:
 
10 INPUT "Quel est ton nom ? ", Nom$
20 PRINT "Bonjour" , Nom$
30 PRINT "25 Décembre"

Reply

Marsh Posté le 24-09-2004 à 10:33:35    

Voici les fonctions. Elles sont efficaces, tout est calculé sans aucune boucle. Il reste à ajouter les vérifications des plages et de la validité des dates.

Code :
  1. //Calcul nombre de jour ecoulés depuis le 01/01/1970
  2. //year  : de 1970 à 2100 (limite au 28/02/2100)
  3. //month : de    1 à   12
  4. //day   : de    1 à   31
  5. int Date2Days(int day, int month, int year)
  6. {
  7. int y, m, m1;
  8. y = year;
  9. m = m1 = month +1;
  10. if(m < 4)
  11.    {
  12.     m += 12;
  13.     y--;
  14.     m1--;
  15.    }
  16. return( ((year-1970) * 364) + (m1*28) + ((m*26) /10) + y + (y/4) - 2526 + day );
  17. }
  18. //Calcul jour de la semaine à partir du nombre de jour depuis 1970
  19. //return : 0:Lundi /1:Mardi ... /6:Dimanche
  20. int DayOfWeek(int nbj)
  21. {
  22. return((nbj +3) %7);
  23. }


Pour la petite histoire :
- En interne Date2Days() repasse les mois de Janvier et Février en fin d'année (if(m < 4) m+=12...) tels qu'il étaient dans le calendrier romain. Ceci explique au passage les noms des mois de SEPTembre, OCTobre, NOVembre et DECembre (7,8,9 et 10).
- Date2Days() n'est valable que jusqu'en 2100 car les années divisibles par 100 ne sont pas bissextiles, sauf celles divisibles par 400 (comme l'an 2000).

Reply

Marsh Posté le 24-09-2004 à 11:12:16    

Lam's a écrit :

T'es sûr ? Je croyais que tous les programmes BASIC commençaient comme ça:
 
10 INPUT "Quel est ton nom ? ", Nom$
20 PRINT "Bonjour" , Nom$
30 PRINT "25 Décembre"


40 GOTO 10


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-09-2004 à 22:20:25    

Merci a tous
GROS merci a lsdyoyo  :jap:


Message édité par hoel le 26-09-2004 à 22:20:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed