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

Algorithmes et structures de données Discussion :

Validité d'une date donnée


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut Validité d'une date donnée
    Salut à tous et à toutes,

    on veut ecrire un algorithme qui permet de lire une date Jours,mois et année
    et vérifier si cette date est valide ou pas sans utliiser les structures de contrôles conditionnelle "SI ... Sinon", sans utiliser les tableau et les boucles etc .. juste avec des variables booléennes.

    SVP, aidez pour trouver une solution.

    Bon à ma part je vois qu'il faut tester si l'année est bissextile ou pas pour en savoir le nombre de jours de février "2".

    On va cadrer les nombres de jours des mois

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Premier essai, en direct live:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    boolean bissextile = ((annee%4==0) && (annee%100>0)) || (annee%400==0);
    boolean maxjdm31 = (mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12);
    boolean maxjdm30 = (mois==4 || mois==6 || mois==9 || mois==11);
    boolean maxjdm29 = (mois==2 && bissextile);
    boolean maxjdm28 = (mois==2 && !bissextile);
     
    boolean valid = (mois>=1 && mois<=12 && jour>=1) && ( (maxjdm31 && jour<=31) || (maxjdm30 && jour<=30) || (maxjdm29 && jour<=29) || (maxjdm28 && jour<=28) );
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Le calendrier grégorien est le calendrier actuellement utilisé dans la majeure partie du monde. Conçu par un collège de scientifiques sous la direction de Christophorus Clavius pour corriger la dérive séculaire du calendrier julien, sa dénomination porte le nom de son instigateur Grégoire XIII, pape de 1572 à 1585. Son point de départ, l'an 1, correspond à l'année estimée comme étant celle de la naissance de Jésus.
    En fonction de quoi nous devons aussi refuser les années négatives ...
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    En fonction de quoi nous devons aussi refuser les années négatives ...
    Soit. Et tant pis pour les dinosaures...

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (...)
    boolean valid = (annee>=1 && mois>=1 && mois<=12 && jour>=1) && ( (maxjdm31 && jour<=31) || (maxjdm30 && jour<=30) || (maxjdm29 && jour<=29) || (maxjdm28 && jour<=28) );
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    En fonction de quoi nous devons aussi refuser les années négatives ...
    Pourquoi?

    Les dates d'avant 1582 sont rarement exprimees comme etant celle du calendrier Gregorien (dire que le sacre de Charlemagne a eu lieu le 29 decembre 800 obscurci la valeur symbolique de la date -- il s'agissait du 25 decembre 800 d'apres le calendrier Julien en vigueur a l'epoque, donc le jour de Noel). Quand on le fait, on parle de calendrier proleptique, et utiliser des annees negatives a autant de sens que des annees anterieures a 1582.

    La chose amusante c'est que deux usages sont en vigueur en ce qui concerne l'utilisation propleptique du calendrier gregorien: certains, les astronomes en particulier, utilisent une annee 0; d'autres -- plus rares -- reprennent le meme usage que pour le calendrier Julien et n'en ont pas.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Citation Envoyé par Jean-Marc Bourquet
    Pourquoi?
    C'est vrai que j'oublie toujours ces fameux 'smileys' ...
    Enfin, je n'exprimais pas un avis personnel, mais simplement le fait que le calendrier dit 'Grégorien' définit lui-même son propre domaine de rétro-activité.
    Il s'agissait surtout de taquiner pseudocode.
    Mon prochain post sera: "Quelle date sommes-nous dans le calendrier révolutionnaire?".
    A moins que ce ne soit:
    "A quelle date est né J-C dans le calendrier musulman ?"
    ou pourquoi pas ?
    "Le Big-Bang s'est-il produit un lundi ?"
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Il s'agissait surtout de taquiner pseudocode.
    Je pense qu'il doit y avoir une règle quelque part qui interdit le taquinage des modos.

    Et de toutes façons, ne rêvez pas : je ne gérerai pas les dates des calendriers julien proleptique, républicain, copte ou maya avec des expressions booléennes !
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Je suis très heureux de cette solution car elle est la vérification de la mienne merci bien

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut merci
    boolean bissextile = ((annee%4==0) && (annee%100>0)) || (annee%400==0);
    boolean maxjdm31 = (mois==1 || mois==3 || mois==5 || mois==7 || mois==8 || mois==10 || mois==12);
    boolean maxjdm30 = (mois==4 || mois==6 || mois==9 || mois==11);
    boolean maxjdm29 = (mois==2 && bissextile);
    boolean maxjdm28 = (mois==2 && !bissextile);

    boolean valid = (mois>=1 && mois<=12 && jour>=1) && ( (maxjdm31 && jour<=31) || (maxjdm30 && jour<=30) || (maxjdm29 && jour<=29) || (maxjdm28 && jour<=28) );


    me si bousibl un Microsoft Visual Studio 2005

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lancer une fonction à une date donnée
    Par ideal dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/02/2006, 12h52
  2. [Task] Lancer un programme à une date donnée ?
    Par jsl1 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/01/2006, 12h44
  3. Réponses: 15
    Dernier message: 03/11/2005, 15h43
  4. Nombre d'enregistrements à une date donnée
    Par martonpylon12 dans le forum Access
    Réponses: 2
    Dernier message: 18/06/2005, 14h21
  5. Réponses: 4
    Dernier message: 16/09/2003, 10h51

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