#include<stdio.h>
#include<stdbool.h>
enum Month {
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};
bool isLeapYear(int year) {
return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}
int days(int year, enum Month mon) {
/*if (mon < 8 && mon % 2 == 0) return 30;
else if (mon % 2 != 0) return 31;
else if (mon % 2 == 0) return 31;
else return 30;*/
int d = 0;
switch (mon) {
case January: case March: case May: case July:
case August: case October: case December:
d = 31;
break;
case February:
d = 28;
break;
case April: case June: case September: case November:
d = 30;
break;
default:
return -1;
break;
}
if (mon == February && isLeapYear(year)) d = 29;
return d;
}
int main(void) {
int year = 2024;
enum Month mon = September;
printf("The number of days in this month is: %d\n", days(year, mon));
return 0;
}
【C语言】16_用枚举和switch语句得到某月的天数
于 2024-05-11 08:35:11 首次发布