怎么写计算年月的程序

时间:2025-01-29 20:47:18 单机游戏

```c

include

int isLeapYear(int year) {

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

return 1; // 是闰年

} else {

return 0; // 不是闰年

}

}

int getDaysInMonth(int year, int month) {

int days;

switch (month) {

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

days = 31;

break;

case 4: case 6: case 9: case 11:

days = 30;

break;

case 2:

if (isLeapYear(year)) {

days = 29;

} else {

days = 28;

}

break;

default:

days = -1; // 无效的月份

break;

}

return days;

}

int main() {

int day, month, year, sum, leap;

printf("请输入年,月,日\n");

scanf("%d,%d,%d", &year, &month, &day);

sum = 0;

for (int i = 1; i < month; i++) {

sum += getDaysInMonth(year, i);

}

sum += day;

if (isLeapYear(year) && month > 2) {

sum++;

}

printf("这是这一年的第%d天。\n", sum);

return 0;

}

```

代码说明:

isLeapYear函数 :判断给定的年份是否为闰年。

getDaysInMonth函数:

根据给定的年份和月份返回该月的天数。

main函数

提示用户输入年、月、日。

使用for循环计算输入日期之前所有月份的天数总和。

将输入日期的天数加到总和中。

如果输入年份是闰年且月份大于2,则总天数加1。

输出结果。

这个程序可以正确处理闰年和非闰年,并且能够处理用户输入的月份超出1-12范围的情况。