IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

programme de calendrier perpétuel


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Par défaut programme de calendrier perpétuel
    Bonjour;
    je suis débutant en programmation et j'ai du mal créer le programme suivant :

    "Donnez le jour de semaine d'une date comprise entre le 1er janvier de l'an -2000 au 31 décembre de l'an 4000. Gérer si possible les différentents calendriers qui ont été utilisés dans l'hitoire de France."

    Quelqu'un a-t-il la source ou l'algo du programme?

    Merci.

  2. #2
    Membre éprouvé Avatar de SaintAmand
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 174
    Par défaut
    Citation Envoyé par cirtey
    Quelqu'un a-t-il la source ou l'algo du programme?
    Merci.
    Oui, moi.

    --
    SaintAmand

  3. #3
    Membre confirmé Avatar de Lucky-94
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 81
    Par défaut
    Bonjour,

    Il semblerait que tu doives utiliser uniquement le calendrier grégorien ?

    Si c’est le cas tu dois transformer ta date en date latine où l’année commençait en mars.
    Soit j le jour, m le mois et a l’année :
    Si m>=3 soustraire 2 à m.
    Sinon ajouter 10 à m et retrancher 1 à a.

    Calculer c la centaine d’année et an l’année dans le siècle.
    Calculer un nombre nb tel que :
    nb = (13m-j)/5 + an/4 + c/4 + an + j -2c avec des divisions entières.
    Faire la division entière de nb par 7.
    Si nb est négatif lui ajouter 7.

    Le résultat de nb te donne le jour de la semaine avec :
    0 représentant dimanche
    1 == lundi
    2 == mardi

    5 == vendredi
    6 représentant samedi.

    En espérant que ces explications te permettent de commencer ton exercice.
    Si ensuite tu as des problèmes avec ton code c reviens ici poser tes questions, quelqu’un pourra surement d’apporter de l’aide.

  4. #4
    Membre très actif
    Inscrit en
    Décembre 2006
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 205
    Par défaut
    Merci Lucky

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 80
    Par défaut
    Citation Envoyé par Lucky-94
    Calculer c la centaine d’année et an l’année dans le siècle.
    Calculer un nombre nb tel que :
    nb = (13m-j)/5 + an/4 + c/4 + an + j -2c avec des divisions entières.
    Faire la division entière de nb par 7.
    Si nb est négatif lui ajouter 7.
    Je n'ai jamais compris l'intérêt d'utiliser une formule aussi cryptique quand on fait de la programmation. Aujourd'hui nous sommes le
    mardi 19 décembre 2006 et demain nous serons le mercredi 20 décembre 2006 et hier nous étions etc. Bon on connaît le nombre de jours d'une semaine, le nombre de jours de chaque mois et quand les années sont bissextiles (multiples de 4 non multiples de 100 sauf les multiples de 400) donc aucun problème, il suffit de demander au processeur de nous dérouler/enrouler le calendrier à vitesse V, non ?

    Candide

    Candide

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par c-candide
    Je n'ai jamais compris l'intérêt d'utiliser une formule aussi cryptique quand on fait de la programmation. Aujourd'hui nous sommes le
    mardi 19 décembre 2006 et demain nous serons le mercredi 20 décembre 2006 et hier nous étions etc. Bon on connaît le nombre de jours d'une semaine, le nombre de jours de chaque mois et quand les années sont bissextiles (multiples de 4 non multiples de 100 sauf les multiples de 400) donc aucun problème, il suffit de demander au processeur de nous dérouler/enrouler le calendrier à vitesse V, non ?
    Ce sont deux approches différentes. Il est clair que l'approche calculée a le mérite d'être rapide et que la méthode du 'déroulé' est plus plus simple à concevoir.

    Il est probable que l'industrie retiendra la méthode calculée, d'autant plus qu'elle utilise très peu de code, ce qui n'est pas le cas des deux algorithmes (en avant, en arrière) que tu proposes...

Discussions similaires

  1. [E-03] Calendrier Perpétuel
    Par Qwazerty dans le forum Contribuez
    Réponses: 7
    Dernier message: 02/05/2009, 13h13
  2. programmer une calendrier
    Par asprog dans le forum VB.NET
    Réponses: 0
    Dernier message: 17/11/2008, 16h03
  3. planning calendrier perpétuel
    Par uchiron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/07/2008, 17h42
  4. Programmer un calendrier
    Par halamou dans le forum Forms
    Réponses: 2
    Dernier message: 29/01/2008, 15h05
  5. problème du calendrier perpétuel
    Par aljabr dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 16/07/2007, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo