it-swarm.com.de

Überprüfen Sie in Javascript, ob das Jahr Schaltjahr ist

 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
 }

Dies ist, was ich bisher habe (der Eintrag befindet sich auf einem von so in "isYear" gespeicherten Wert), ich habe im Grunde Folgendes befolgt hier . Verwenden Sie also das, was ich bereits habe, um zu überprüfen, ob der Eintrag vorhanden ist Ein Schaltjahr basierend auf diesen Bedingungen (Anmerkung: Ich habe es möglicherweise falsch gemacht, als der Pseudocode implementiert wurde. Korrigieren Sie mich bitte, wenn dies der Fall ist.) Bearbeiten: Beachten Sie, dass hierfür eine Ganzzahl und keine Datumsfunktion verwendet werden muss

59
BigBob
function leapYear(year)
{
  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
145
MMeersseman

Die Funktion prüft, ob der Februar 29 Tage hat. Wenn ja, dann haben wir ein Schaltjahr.

ES5

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

ES6

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

Ergebnis

isLeap(1004) // true
isLeap(1001) // false
31
Eugene Sunic

Eine schnellere Lösung bietet Kevin P. Rice hier: https://stackoverflow.com/a/11595914/553582 Hier also der Code:

function leapYear(year)
{
    return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}
4

Wenn Sie dies in einer Node.js-App tun, können Sie das Schaltjahr -Paket verwenden:

npm install --save leap-year

Verwenden Sie dann in Ihrer App den folgenden Code, um zu überprüfen, ob das angegebene Jahres- oder Datumsobjekt ein Schaltjahr ist:

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

leapYear(2014);
//=> false 

leapYear(2016);
//=> true 

Die Verwendung einer solchen Bibliothek hat den Vorteil, dass Sie sich nicht mit den schmutzigen Details befassen müssen, um alle Sonderfälle richtig zu machen, da sich die Bibliothek darum kümmert.

3
nwinkler

Mit dem folgenden Code können Sie überprüfen, ob es sich um ein Schaltjahr handelt:

ily = function(yr) {
    return (yr % 400) ? ((yr % 100) ? ((yr % 4) ? false : true) : false) : true;
}
0
Brian Hayes