How to get the number of days in a specified month using JavaScript ?
Given a month the task is to determine the number of days of that month using JavaScript. we can use the getDate() method for the calculation of number of days in a month.
JavaScript getDate() Method
getDate() method returns the number of days in a month (from 1 to 31) for the defined date.
Syntax:
Date.getDate();
Return value:
It returns a number, from 1 to 31, representing the day of the month.
Example 1: This example gets the days in the month (February) of the year (2020) by passing the month (1-12) and year to the function daysInMonth.
function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}
function GFG_Fun() {
let date = new Date();
let month = 2;
let year = 2020;
console.log("Number of days in " + month
+ "and month of the year " + year
+ " is " + daysInMonth(month, year));
}
GFG_Fun()
Output
Number of days in 2and month of the year 2020 is 29
Example 2: This example gets the days in the current month of the current year by passing the month (1-12) and year to the function daysInMonth.
function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}
function GFG_Fun() {
let date = new Date();
let month = date.getMonth() + 1;
let year = date.getFullYear();
console.log("Number of days in " + month
+ "th month of the year " + year
+ " is " + daysInMonth(month, year));
}
GFG_Fun()
Output
Number of days in 5th month of the year 2024 is 31
2. Using an array to store days in each month
Example 1: Using an array to store days in each month allows for efficient retrieval of the number of days in a specific month based on its index.
function daysInMonth(month, year) {
const daysInMonths = [31, (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
return daysInMonths[month - 1];
}
// Example usage:
let month = 2;
let year = 2024;
console.log("Number of days in " + month + "th month of the year " + year + " is " + daysInMonth(month, year));
Output
Number of days in 2th month of the year 2024 is 29
3. Using switch statement
In this approach, a switch statement is used to return the number of days based on the specified month. This approach is straightforward and allows for direct mapping of month numbers to the corresponding number of days.
function daysInMonth(month, year) {
switch (month) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
return 31;
case 4: // April
case 6: // June
case 9: // September
case 11: // November
return 30;
case 2: // February
return (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 29 : 28;
default:
return -1; // Invalid month
}
}
// Example usage:
let month = 2;
let year = 2024;
console.log("Number of days in " + month + "th month of the year " + year + " is " + daysInMonth(month, year));
Output
Number of days in 2th month of the year 2024 is 29
We have a complete list of Javascript Date Objects, to check those please go through this Javascript Date Object Complete reference article.