Le C et un défi ^^
YAAATAAAA
-
Rocksy Messages postés 514 Date d'inscription Statut Membre Dernière intervention -
Rocksy Messages postés 514 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà je suis en train d'étudier le C et on m'a mis à l'epreuve:
Il faudrait que je creer un logiciel qui serait capable de me dire quel jour nous etions à une date précise!
C'est des math pur et dur!
Je suis née le 25/10/93, ca fait 5134 jour, ça fait si mon calcul est bon 733 semaines (5134/7)
Mais là pour trouver le chiffre entre 1 et 7 (le jour de la semaine où nous serions) je bloque !!! aider moi SVP
Voilà je suis en train d'étudier le C et on m'a mis à l'epreuve:
Il faudrait que je creer un logiciel qui serait capable de me dire quel jour nous etions à une date précise!
C'est des math pur et dur!
Je suis née le 25/10/93, ca fait 5134 jour, ça fait si mon calcul est bon 733 semaines (5134/7)
Mais là pour trouver le chiffre entre 1 et 7 (le jour de la semaine où nous serions) je bloque !!! aider moi SVP
Configuration: Windows XP Firefox 2.0.0.11
3 réponses
-
-
Bonjour YAAATAAAA,
La gestion du temps sous C est géré par des fonctions de type gmtime.
Le but de cette fonction est de remplir une structure tm avec les informations obtenue avec la fonction time.
struct tm
{
int tm_sec ; // secondes 0 - 59
int tm_min ; // minutes 0 - 59
int tm_hour ; // heure 0 - 23
int tm_mday ; // jour du mois 1 - 31
int tm_mon ; // mois de l'année 0 - 11
int tm_year ; // année par rapport à 1900
int tm_wday ; // jour par rapport à dimanche 0 - 6
int tm_yday ; // jour par rapport au 1° janvier 0 -365
int tm_isdst ; // heure d'été
}
Si la date est antérieur à 1980, la fonction renvoie NULL.
Maintenant, à toi de jouer.
Ce défi, c'est à toi de le surmonter.
Bon courage... -
Bonsoir,
Le code complet:#include <stdlib.h> #include <stdio.h> #include <io.h> #include <math.h> #include <conio.h> int toto; // Acquisition d'une nombre void nbr() { char caract; char tab[99]; int ptr=0; while (caract!='\r') { caract=getch(); if (caract>='0' && caract <='9') { tab[ptr]=caract; ptr=ptr+1; tab[ptr]='\0'; printf("%c",caract); } if (caract=='\b') { if (ptr>0) { ptr=ptr-1; printf("\b \b"); } } }// Fin du while (caract!='\r') toto=atoi(tab); } // Fin du int nbr void main() { /*Variable du main*/ int annee; //Acquisitiondeladate int mois; //Acquisitiondumois int jour; //Acquisitiondujours int mem_jour; int mem_mois; int mem_annee; int jour_fixe=1; int mois_fixe=1; int annee_fixe=2006; int nbr_jour=31; //Nbrdejourdanslemois int jour_semaine=7; //Lejourdelasemaine int err=0; //clrscr(); printf("Saisir l annee = "); nbr(); annee=toto; printf("\n\rSaisir le mois = "); nbr(); mois=toto; printf("\n\rSaisir le jour = "); nbr(); jour=toto; mem_annee=annee; mem_mois=mois; mem_jour=jour; printf("\n\rannee= %i / mois =%i / jour =%i",annee,mois,jour); if(mois>12)err=1; if(mois<1)err=1; switch(mois) { case 4: nbr_jour=30; break; case 6: nbr_jour=30; break; case 9: nbr_jour=30; break; case 11: nbr_jour=30; break; case 2: if(annee%100==0) { if(annee%400==0) { nbr_jour=29; }//Finduif(annee%400==0) else { nbr_jour=28; } }//Finduif(annee%100==0) else { if(annee%4==0) { nbr_jour=29; }//Finduif(annee%4==0) else { nbr_jour=28; } }//Finduelseif(annee%100==0) break; default: nbr_jour=31; }//Finduswitch(mois) if(jour<1) err=1; if(jour>nbr_jour) err=1; /*Calculdujour*/ if(err==0) { while(jour!=jour_fixe) { if(jour<jour_fixe) { jour=jour+1; jour_semaine=jour_semaine+1; } if(jour>jour_fixe) { jour=jour-1; jour_semaine=jour_semaine+1; } } while(mois!=mois_fixe) { if(mois<mois_fixe)mois=mois+1; if(mois>mois_fixe)mois=mois-1; nbr_jour=31; switch(mois) { case 4: nbr_jour=30; break; case 6: nbr_jour=30; break; case 9: nbr_jour=30; break; case 11: nbr_jour=30; break; case 02: if(annee%100==0) { if(annee%400==0) { nbr_jour=29; }//Finduif(annee%400==0) else { nbr_jour=28; } }//Finduif(annee%100==0) else { if(annee%4==0) { nbr_jour=29; }//Finduif(annee%4==0) else { nbr_jour=28; } }//Finduelseif(annee%100==0) break; default: nbr_jour=31; }//Finduswitch(mois) jour_semaine=jour_semaine+nbr_jour; } while(annee!=annee_fixe) { nbr_jour=365; if(annee%100==0) { if(annee%400==0) { nbr_jour=366; }//Finduif(annee%400==0) else { nbr_jour=365; } }//Finduif(annee%100==0) else { if(annee%4==0) { nbr_jour=366; }//Finduif(annee%4==0) else { nbr_jour=365; } }//Finduelseif(annee%100==0) if(annee<annee_fixe) { annee=annee+1; jour_semaine=jour_semaine-nbr_jour; } if(annee>annee_fixe) { annee=annee-1; jour_semaine=jour_semaine+nbr_jour; } } //jour_semaine=jour_semaine-mem_mois; if(jour_semaine<0) { while(jour_semaine<=0) { jour_semaine=jour_semaine+7; } } else { while(jour_semaine>7) { jour_semaine=jour_semaine-7; } } printf("\n\rC est un "); if (jour_semaine==0) jour_semaine=7; if (jour_semaine==8) jour_semaine=1; switch(jour_semaine) { case 1: printf("Lundi"); break; case 2: printf("Mardi"); break; case 3: printf("Mercredi"); break; case 4: printf("Jeudi"); break; case 5: printf("Vendredi"); break; case 6: printf("Samedi"); break; case 7: printf("Dimanche"); break; } } else { printf("\n\rDate incorrect"); } getch(); }