Проверьте, является ли год високосным годом в JavaScript

 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
 }

Это то, что я имею до сих пор (запись хранится в "isYear"), я в основном следовал этому здесь, поэтому, используя то, что у меня уже есть, как я могу проверить, является ли запись високосным годом на основе этих условий (обратите внимание, что я мог сделать это неправильно при реализации псевдокода, пожалуйста, исправьте меня, если у меня есть) Редактировать: Обратите внимание, что для этого нужно использовать целое число, а не функцию даты

7 ответов

Решение
function leapYear(year)
{
  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}

Функция проверяет, есть ли в феврале 29 дней. Если это произойдет, то у нас високосный год.

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

Кевин П. Райс предлагает более быстрое решение здесь: /questions/36182965/kak-najti-visokosnyij-god-programmno-v-c/36182967#36182967 Так вот код:

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

Если вы делаете это в приложении Node.js, вы можете использовать пакет високосного года:

npm install --save leap-year

Затем из своего приложения используйте следующий код, чтобы проверить, является ли предоставленный объект года или даты високосным годом:

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

leapYear(2014);
//=> false 

leapYear(2016);
//=> true 

Преимущество такой библиотеки в том, что вам не нужно разбираться с грязными деталями, чтобы правильно понять все особые случаи, поскольку библиотека об этом позаботится.

Вы можете использовать следующий код для проверки високосного года:

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

Мой код очень легко понять

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

if (LeapYear==0) {
    alert("This is Leap Year");
} else {
    alert("This is not leap year");
}

Вы можете попробовать использовать объект Date в JavaScript

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

Это вернет истину или ложь.

Другие вопросы по тегам