Instead of writing like "28 or 29 days", how can we add also the leap-year check to switch, to get 29 days for the year 2000?
var month = "Feb";
var year = 2000;
switch(month) {
case "Apr": case "Jun": case "Sep": case "Nov":
console.log("30 days."); break;
case "Feb":
console.log("28 or 29 days."); break;
default: console.log("31 days.");
}
Hope this helps you. Code should be self explanatory. Please let me know.
function isLeapYear(year) {
return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
}
function getMonthLength(month, year) {
switch(month) {
case "Apr": case "Jun": case "Sep": case "Nov":
return 30;
case "Feb":
return isLeapYear(year) ? 29 : 28;
default:
return 31;
}
}
console.log(getMonthLength('Feb', 2000));
console.log(getMonthLength('Jan', 2001));
console.log(getMonthLength('Feb', 2001));
console.log(getMonthLength('Sep', 2001));