begin process at 2012 05 27 15:24:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DAYFINDER

DAYFINDER


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :23/01/2003 Date de mise à jour :23/01/2003 22:55:20 Vu :2 024

Auteur : LeRenardGris

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Bon je suis nouveau et je ne savais pas par quoi commencer et donc j?ai écris un petit programme
qui permet de retrouver le jour d?après la saisie d?une date.
Exemple si on rentre 23/01/2003 le programme dira que ce jour est un jeudi voilà @+

Source

  • //***************************************************************************
  • //Programme : DayFinder
  • //By LeRenardGris
  • //
  • //***************************************************************************
  • //Calcul du jour de la semaine d'après une date
  • //***************************************************************************
  • #include <stdio.h>
  • #include <conio.h>
  • //---------------------------------------------------------------------------
  • int main()
  • {
  • debut: // etiquette 0
  • clrscr();
  • printf("*************************\n");
  • printf("*************************\n\n");
  • printf("DayFinder by LeRenardGris\n\n");
  • printf("*************************\n");
  • printf("*************************\n\n");
  • printf("*****************************************************************\n");
  • printf("* Calcul du jour de la semaine d'apres une date *\n");
  • printf("*****************************************************************\n\n");
  • int JJ,MM,AA;
  • //saisi de la date :
  • printf("Entrez une date (exemple : 09/10/2002) : ");
  • scanf("%02d/%02d/%04d",&JJ,&MM,&AA);
  • if(MM<3){
  • AA--;
  • MM+=12;
  • }//<--fin du if
  • // Mega formule
  • int N=1720996+(int)(365.25*AA)+(int)(30.6001*(MM+1))-(int)(AA/100)+(int)(AA/400)+JJ;
  • N=(N+2)%7;
  • // on sait que la reponse de la formule peut-être égal
  • // a 0,1,2,3,4,5,6 d'ou l'utilisation de la boucle switch
  • // 0 correspond à dimanche, 1 à lundi ect...
  • switch(N){
  • case 0:
  • printf("Ce jour est un dimanche");
  • break;
  • case 1:
  • printf("Ce jour est un lundi");
  • break;
  • case 2:
  • printf("Ce jour est un mardi");
  • break;
  • case 3:
  • printf("Ce jour est un mercredi");
  • break;
  • case 4:
  • printf("Ce jour est un jeudi");
  • break;
  • case 5:
  • printf("Ce jour est vendredi");
  • break;
  • case 6:
  • printf("Ce jour est un samedi");
  • break;
  • }//<--fin du switch
  • question: // etiquette 1
  • printf("\n\npour recommencer une application tapez sur 1 : ");
  • int bb ;
  • scanf("%d",&bb);
  • {
  • if (bb==1)
  • goto debut; // aller a l'étiquette 0
  • else
  • goto question ; // aller a l'étiquette 1
  • }
  • getch();
  • return 0;
  • }
  • // petite remarque: l'utilisation de goto c'est pas super
  • // pour une boucle mais bon sa marche. A la place on pourrait
  • // utiliser une boucle for.
//***************************************************************************
//Programme : DayFinder
//By LeRenardGris
//
//***************************************************************************
//Calcul du jour de la semaine d'après une date
//***************************************************************************

#include <stdio.h>
#include <conio.h>

//---------------------------------------------------------------------------

int main()
{
debut: // etiquette 0
clrscr();
        printf("*************************\n");
        printf("*************************\n\n");
        printf("DayFinder by LeRenardGris\n\n");
        printf("*************************\n");
        printf("*************************\n\n");

        printf("*****************************************************************\n");
        printf("* Calcul du jour de la semaine d'apres une date *\n");
        printf("*****************************************************************\n\n");

        int JJ,MM,AA;
        //saisi de la date :
        printf("Entrez une date (exemple : 09/10/2002) : ");
        scanf("%02d/%02d/%04d",&JJ,&MM,&AA);
        if(MM<3){
                AA--;
                MM+=12;
        }//<--fin du if

        // Mega formule

        int N=1720996+(int)(365.25*AA)+(int)(30.6001*(MM+1))-(int)(AA/100)+(int)(AA/400)+JJ;
        N=(N+2)%7;

        // on sait que la reponse de la formule peut-être égal
        // a 0,1,2,3,4,5,6 d'ou l'utilisation de la boucle switch
        // 0 correspond à dimanche, 1 à lundi ect...
        switch(N){
                case 0:
                        printf("Ce jour est un dimanche");
                        break;
                case 1:
                        printf("Ce jour est un lundi");
                        break;
                case 2:
                        printf("Ce jour est un mardi");
                        break;
                case 3:
                        printf("Ce jour est un mercredi");
                        break;
                case 4:
                        printf("Ce jour est un jeudi");
                        break;
                case 5:
                        printf("Ce jour est vendredi");
                        break;
                case 6:
                        printf("Ce jour est un samedi");
                        break;
      }//<--fin du switch

question:  // etiquette 1

printf("\n\npour recommencer une application tapez sur 1 : ");
int bb ;
scanf("%d",&bb);
{
if (bb==1)
 goto debut; // aller a l'étiquette 0
 else
 goto question ; // aller a l'étiquette 1
}
getch();
        return 0;
}
// petite remarque: l'utilisation de goto c'est pas super
// pour une boucle mais bon sa marche. A la place on pourrait
// utiliser une boucle for.

 Conclusion

Ben j'ai que testé le code sous Builder v3 allé @+


 Sources du même auteur

JEDIASS
TRIANGLE DE PASCAL

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Commentaire de GoldenEye le 24/01/2003 09:46:28

Tu nous explique d'où sort la "méga formule" ?

Commentaire de LeRenardGris le 24/01/2003 10:39:19

Ben la mega formule, ben c'est des Maths.
Je l'ai trouvé dans mon livre de Maths et je l'ai addapté a mon prog
car telle quelle elle ne fonctionnais pas trop bien avec le prog.
et voilà la reponse à t'as question @+ :)

Commentaire de davwart le 24/01/2003 12:13:59

oui.. je rejoins l'ide de GoldenEye.
La formule, ok elle vient d'un boukin demath mais.. tu peux nous l'expliquer.
par exemple pkoi as tu mis 1720996 et pas 1720996,5 ?

merci

Commentaire de cmarsc le 24/01/2003 18:40:55

salut,
les déclarations des variables doivent être faites en debut de fonction en C
car tu nous as fait un peu de C++;
int JJ,MM,AA, bb ,N;
on n'a pas besoin de switch(N) on fait un petit menu avec les jours

char jours_de_la_semaine[7] = {
    "dimanche",
    "lundi",
    "mardi",
    "mercredi",
    "jeudi",
    "vendredi",
    "samedi",
};
printf("Ce jour est un %s",jours_de_la_semaine[N]);

de plus on ne peut pas sortir du programme avec ceci
scanf("%d",&bb);
{
if (bb==1)
goto debut; // aller a l'étiquette 0
else
goto question ; // aller a l'étiquette 1
}
bien que les goto(s) ne soient pas indiqués ici, je vais faire avec pour la
solution :-(

if (bb==1) {
   goto debut; // aller a l'étiquette 0
} else if (bb == 0) {
   exit(0);    // 0 pour sortir
} else {
   goto question ; // aller a l'étiquette 1
}

Commentaire de LeRenardGris le 24/01/2003 20:07:42

Salut cmarsc je sais que la source que j'ai presentee est un peu un melange de C et C++. ( jaime bien melanger plusieurs languages ).
Merci pour ta remarque sur le goto. Mais je ne cherchais pas a mettre une option pour quitter.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales