Nhập vào tháng nam cho biết tháng đó có bao nhiêu ngày

Bài toán: Viết chương trình nhập tháng, năm. Hãy tìm số ngày trong tháng đó.

  • Input

  •  
  • Output

  •  

Hướng dẫn tìm số ngày trong tháng

Trong một năm thì các tháng có 31 ngày là: 1, 3, 5, 7, 8, 10, 12.

Các tháng có 30 ngày là: 4, 6, 9, 11.

Riêng tháng hai nếu là năm nhuận sẽ có 29 ngày, ngược lại nếu không nhuận thì có 28 ngày.

Như vậy sau khi nhập tháng và năm vào thì ta sẽ kiểm tra tháng đó là tháng mấy. Nếu tháng đó thuộc những tháng {1, 3, 5, 7, 8, 10, 12} thì ta sẽ kết luận tháng đó có 31 ngày. Tương tự những tháng {4, 6, 9, 11} sẽ có 30 ngày. Nếu kiểm tra tháng đó đúng là tháng hai thì ta phải kiểm tra xem năm đó có nhuận không. Nếu nhuận thì tháng đó sẽ có 29 ngày ngược lại thì sẽ là 28 ngày.

Xây dựng hàm kiểm tra năm nhuận

Một năm được gọi là nhuận nếu số năm đó chia hết cho 4 mà không chia hết cho 100. Hoặc năm đó chia hết cho 400.

Ví dụ 2016 là một năm nhuận.

Code

bool isCheck[int nam] {

    if [[nam % 4 == 0 && nam % 100 != 0] || nam % 400 == 0]

        return true;

    return false;

}

Hoặc nếu viết ngắn gọn như dưới đây cũng được

bool isCheck[int nam] {

    return [[nam % 4 == 0 && nam % 100 != 0] || nam % 400 == 0];

}

Xây dựng hàm tìm số ngày trong tháng

Hàm này thì các bạn nên viết dưới dạng switch case sẽ ngắn gọn và logic hơn if else.

Code

0

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

int fun[int thang, int nam] {

    switch [thang]

    {

    case 1:

    case 3:

    case 5:

    case 7:

    case 8:

    case 10:

    case 12:

        return 31;

    case 4:

    case 6:

    case 9:

    case 11:

        return 30;

    case 2:

        if [isCheck[nam]]

            return 29;

        else

            return 28;

    default:

        cout

Chủ Đề