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
function leapYear(year)
{
return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
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
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);
}
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.
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;
}