How to Compute the Number of Days in a Month?

  • 时间:2020-09-21 09:15:21
  • 分类:网络文摘
  • 阅读:79 次

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:
1583 <= Y <= 2100
1 <= M <= 12

The special case is the February: 29 days if it is a leap year and 28 days otherwise. All other months either have 30 or 31 days. Therefore, using a simple switch-statement in C/C++/Java should do it.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution {
public:
    int numberOfDays(int Y, int M) {
        if (M == 2) {
            if (isLeap(Y)) return 29;
            return 28;
        }
        switch (M) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
        }
        return 30;
    }
private:
    bool isLeap(int Y) {
        if (Y % 400 == 0) {
            return true;
        } else if ( Y % 100 == 0) {
            return false;
        } else if (Y % 4 == 0) {
            return true;
        } else {
            return false;
        }        
    }
};
class Solution {
public:
    int numberOfDays(int Y, int M) {
        if (M == 2) {
            if (isLeap(Y)) return 29;
            return 28;
        }
        switch (M) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
        }
        return 30;
    }
private:
    bool isLeap(int Y) {
        if (Y % 400 == 0) {
            return true;
        } else if ( Y % 100 == 0) {
            return false;
        } else if (Y % 4 == 0) {
            return true;
        } else {
            return false;
        }        
    }
};

The above C++ program uses the isLeap method to test for leap year. And both the time and space complexity is O(1) constant.

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
Best Practices for Blogging Securely  5 Tips to Make Sure Your Blogs Works on Every Browser  Learn from Business Entrepreneurs Who Take the Time to Train Oth  The Story Of Aaron Swartz And How His Death Could Change Compute  Smart Finance Tips for Bloggers  8 Ways to Build Up Seed Money to Turn Your Blog into a Business  Apple Reveals ARKit At WWDC  Blogging From the Road: Japan Edition  How to Redesign Your Blog for Improved User Experience  Yes, It’s Possible to Grab Loans When Working as a Freelancer 
评论列表
添加评论