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

JavaScript Discussion :

Année 2010 bisextile


Sujet :

JavaScript

  1. #1
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut Année 2010 bisextile
    Bonsoir tous ,
    je trouve sur internet le sujet suivant :
    1 Si l'année est divisible par 4, passez à l'étape 2. Dans le cas contraire, passez à l'étape 5.
    2 Si l'année est divisible par 100, passez à l'étape 3. Dans le cas contraire, passez à l'étape 4.
    3 Si l'année est divisible par 400, passez à l'étape 4. Dans le cas contraire, passez à l'étape 5.
    4 L'année est une année bissextile (elle a 366 jours).
    5 L'année n'est pas une année bissextile (elle a 365 jours).
    je décide de l'appliquer à un de mes programmes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(!(year % 4)) 
    {
    	if(!(year % 100))
    	{
    		if(!(year % 400)) {leap=true;}
    		else {leap=false;}
    	}
    	else {leap=true;}
    }
    else {leap=false;}
    Probléme : l'année 2010 ressort comme année bisextile alors qu'elle ne l'était pas !
    Est ce dû à mon interprétation de l'algorythme ??
    Ce qui me choque c'est que la première condition devrait être suffisante pour donner le bon résultat ; je soupçonne un comportement non prévu mais lequel ?

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    L'énoncé a l'air faux. Si on le lit bien, cela implique qu'une année est bissextile si c'est divisible par 4 ET divisible par 100 ET divisible par 400. C'est plutôt :
    Divisible par 4 ET non divisible par 100 OU divisible par 400.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    (!(year % 4) && (year%100)) || !(year % 400)

    Dans le doute, utilise la puissance de l'objet Date de JavaScript.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log(new Date(2010, 1, 29).getMonth() === 1); // false
    console.log(new Date(2012, 1, 29).getMonth() === 1); // true
    En gros, on se place sur le 29 février de l'année désirée et si le mois de ce jour est toujours février, c'est bissextile. Sinon ça ne l'est pas.

    Ou alors, checker le jour 0 du mois de mars (qui est le dernier jour de février en JavaScript). Si c'est un 29, alors l'année est bissextile. Si non c'est un 28, donc l'année n'est pas bissextile

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log(new Date(2010, 2, 0 ).getDate() === 29); //false
    console.log(new Date(2012, 2, 0 ).getDate() === 29); //true

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (new Date(this,2,0).getDate()>=29);
    c'est d'ailleurs dans la FAQ
    http://javascript.developpez.com/faq...nneeBissextile

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

Discussions similaires

  1. Bonne année 2010
    Par LefortLudovic dans le forum SharePoint
    Réponses: 4
    Dernier message: 04/01/2010, 09h52
  2. Réponses: 11
    Dernier message: 03/12/2009, 16h32
  3. Procédure de traitement si année est bisextile
    Par fouz12 dans le forum PL/SQL
    Réponses: 34
    Dernier message: 31/10/2008, 16h58
  4. Comment savoir si une année est bissextile
    Par Theocourant dans le forum Contribuez
    Réponses: 3
    Dernier message: 19/09/2006, 08h10
  5. Comment savoir si une année est bisextile
    Par Theocourant dans le forum Vos contributions VB6
    Réponses: 23
    Dernier message: 03/08/2006, 10h49

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