题解 | #获得月份天数#
获得月份天数
https://www.nowcoder.com/practice/13aeae34f8ed4697960f7cfc80f9f7f6
#include <stdio.h>
/*
判断是否为闰年
参数表:year年份
返回值:1是 0否
*/
int IsLeapYear(const int year)
{
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
return 1;
else
return 0;
}
/*
计算任意年份月份的天数
参数表:year年份 month月份
返回值:year年month月的天数, 0不存在该年份或月份
*/
int CountDay(const int year, const int month)
{
//判断年份或者月份是否合法
if (year < 1 || month < 1 || month>12)
{
return 0;
}
//1,3,5,7,8,10,12月天数为31天
if ((month < 8 && month % 2 == 1) || (month > 7 && month % 2 == 0))
{
return 31;
}
else if (2 == month)
{//闰年2月有29天,平年闰月28天
if (IsLeapYear(year))
return 29;
else
return 28;
}
else
{//剩余年份4,6,9,11月天数为30天
return 30;
}
}
int main() {
int year = 0;
int month = 0;
while(scanf("%d %d", &year, &month) == 2)
{
printf("%d\n", CountDay(year, month));
}
return 0;
}
