Welcome to Subscribe On Youtube

Formatted question description: https://leetcode.ca/all/1118.html

1118. Number of Days in a Month

Level

Easy

Description

Given a year Y and a month M, return how many days there are in that month.

Example 1:

Input: Y = 1992, M = 7

Output: 31

Example 2:

Input: Y = 2000, M = 2

Output: 29

Example 3:

Input: Y = 1900, M = 2

Output: 28

Note:

  1. 1583 <= Y <= 2100
  2. 1 <= M <= 12

Solution

If M is 1, 3, 5, 7, 8, 10, or 12, then there are 31 days in that month.

If M is 4, 6, 9, or 11, then there are 30 days in that month.

If M is 2, then Y needs to be checked whether it is a leap year. If Y is divisible by 4 but not divisible by 100, or Y is divisible by 400, then it is a leap year. There are 29 days in that month if it is a leap year or 28 days in that month otherwise.

  • class Solution {
        public int numberOfDays(int Y, int M) {
            if (M == 1 || M == 3 || M == 5 || M == 7 || M == 8 || M == 10 || M == 12)
                return 31;
            else if (M == 4 || M == 6 || M == 9 || M == 11)
                return 30;
            else {
                if (Y % 4 == 0 && Y % 100 != 0 || Y % 400 == 0)
                    return 29;
                else
                    return 28;
            }
        }
    }
    
  • // OJ: https://leetcode.com/problems/number-of-days-in-a-month/
    // Time: O(1)
    // Space: O(1)
    class Solution {
        bool isLeapYear(int year) {
            return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
        }
    public:
        int numberOfDays(int year, int month) {
            if (month == 2) return isLeapYear(year) ? 29 : 28;
            return month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ? 31 : 30;
        }
    };
    
  • class Solution:
        def numberOfDays(self, year: int, month: int) -> int:
            leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
            days = [0, 31, 29 if leap else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
            return days[month]
    
    
    
  • func numberOfDays(year int, month int) int {
    	leap := (year%4 == 0 && year%100 != 0) || (year%400 == 0)
    	x := 28
    	if leap {
    		x = 29
    	}
    	days := []int{0, 31, x, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    	return days[month]
    }
    
  • function numberOfDays(year: number, month: number): number {
        const leap = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
        const days = [
            0,
            31,
            leap ? 29 : 28,
            31,
            30,
            31,
            30,
            31,
            31,
            30,
            31,
            30,
            31,
        ];
        return days[month];
    }
    
    

All Problems

All Solutions