输入日期的年份和月份,求该月有多少天。【多组输入】
提示:月份为 1、3、5、7、8、10、12 的月份天数为 31,月份为 4、6、9、11 的 月份天数为 30,月份为 2 时要结合年份考虑闰年的情况。
输入描述: 输入两个正整数 y 和 m 分别表示年份和月份
输出描述: 如果 y 和 m 满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“输入的年份和月份错误!”
输入样例: 2020 2
输出样例: 29
实现代码:
#include<iostream>
using namespace std;
int main() {
int y, m;
6
while (cin >> y >> m) {
if (1900 <= y && 3000 > y && 0 < m && m < 13) //判断年份月份是否正确
{
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) //判断闰年
{
switch (m) {
case 1:cout << "31" << endl;break;
case 2:cout << "29" << endl;break;
case 3:cout << "31" << endl;break;
case 4:cout << "30" << endl;break;
case 5:cout << "31" << endl;break;
case 6:cout << "30" << endl;break;
case 7:cout << "31" << endl;break;
case 8:cout << "31" << endl;break;
case 9:cout << "30" << endl;break;
case 10:cout << "31" << endl;break;
case 11:cout << "30" << endl;break;
case 12:cout << "31" << endl;break;
}
}
else { //判断平年
switch (m) {
case 1:cout << "31" << endl;break;
case 2:cout << "28" << endl;break;
case 3:cout << "31" << endl;break;
case 4:cout << "30" << endl;break;
case 5:cout << "31" << endl;break;
case 6:cout << "30" << endl;break;
case 7:cout << "31" << endl;break;
case 8:cout << "31" << endl;break;
case 9:cout << "30" << endl;break;
case 10:cout << "31" << endl;break;
case 11:cout << "30" << endl;break;
case 12:cout << "31" << endl;break;
}
}
}
else { //判断输入月份和年份
cout << "输入的年份和月份错误!" << endl;
}
}
return 0;
}