Vérifiez si l'année est bissextile en javascript [dupliquer]

Cette question a déjà une réponse ici:

 function leapYear(year){
    var result; 
    year = parseInt(document.getElementById("isYear").value);
    if (years/400){
      result = true
    }
    else if(years/100){
      result = false
    }
    else if(years/4){
      result= true
    }
    else{
      result= false
    }
    return result
 }

C'est Ce que j'ai jusqu'à présent (l'entrée est sur une de ainsi stockés dans "isYear"), en gros, j'ai suivi ce ici, donc, en utilisant ce que j'ai déjà, comment puis-je vérifier si l'entrée est une année bissextile, sur la base de ces conditions(remarque j'ai peut-être mal lors de l'implémentation du pseudocode, veuillez me corriger si j'ai) Edit: notez que cela doit utiliser un entier pas une fonction de date

50
demandé sur Sam 2013-05-03 10:49:24

7 réponses

function leapYear(year)
{
  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
124
répondu MMeersseman 2013-05-03 06:51:30

La fonction vérifie si février a 29 jours. Si c'est le cas, nous avons une année bissextile.

function isLeap(year) {
  return new Date(year, 1, 29).getDate() === 29;
}

ES6

let isLeap = (year) => new Date(year, 1, 29).getDate() === 29;

isLeap(1004) // true
isLeap(1001) // false
24
répondu eugen sunic 2018-08-16 07:07:36

Si vous faites cela dans un nœud.js app, vous pouvez utiliser le paquet année bissextile :

npm install --save leap-year

Ensuite, à partir de votre application, utilisez le code suivant pour vérifier si l'objet année ou date fourni est une année bissextile:

var leapYear = require('leap-year');

leapYear(2014);
//=> false 

leapYear(2016);
//=> true 

L'utilisation d'une bibliothèque comme celle-ci a l'avantage de ne pas avoir à traiter les détails sales de tous les cas spéciaux, puisque la bibliothèque s'en occupe.

2
répondu nwinkler 2015-07-07 05:59:45

Une solution plus rapide est fournie par Kevin P. Rice ici: https://stackoverflow.com/a/11595914/5535820 Voici donc le code:

function leapYear(year)
{
    return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}
2
répondu Crist Xiaotian Ye 2017-05-23 20:19:21

Vous pouvez utiliser le code suivant pour vérifier si c'est une année bissextile:

ily = function(yr) {
    return (yr % 400) ? ((yr % 100) ? ((yr % 4) ? false : true) : false) : true;
}
-1
répondu Brian Hayes 2015-03-30 17:48:47

Mon Code Est Très Facile À Comprendre

var year = 2015;
var LeapYear = year % 4;

if (LeapYear==0) {
    alert("This is Leap Year");
} else {
    alert("This is not leap year");
}
-9
répondu Maruf Sarkar 2016-08-22 04:45:21

Vous pouvez essayer d'utiliser L'objet Date de JavaScript

new Date(year,month).getFullYear()%4==0

Cela renverra true ou false.

-10
répondu SrikanthManian 2013-05-03 06:53:52