c语言,从键盘输入年份和月份,计算该年1月1到当月月底的总天数
时间: 2023-11-28 10:04:10 浏览: 134
可以采用循环的方式,根据每个月的天数累加总天数。需要注意闰年的情况,闰年的2月有29天。
以下是示例代码:
```c#include <stdio.h>
int main() {
int year, month, totalDays = 0;
printf("请输入年份和月份,格式为 yyyy mm:\n");
scanf("%d %d", &year, &month);
// 计算该年1月1日是星期几
int dayOfWeek = 1; // 1900年1月1日是星期一,因此从星期一开始计算
for (int y = 1900; y < year; y++) {
dayOfWeek = (dayOfWeek + (y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 366 : 365)) % 7;
}
for (int m = 1; m < month; m++) {
int daysInMonth;
switch (m) {
case 4:
case 6:
case 9:
case 11:
daysInMonth = 30;
break;
case 2:
daysInMonth = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 29 : 28;
break;
default:
daysInMonth = 31;
}
totalDays += daysInMonth;
}
totalDays += dayOfWeek; // 1月1日是星期几,加上这些天
totalDays += 30 - (totalDays - 1) % 7; // 加上当月剩余的天数
printf("%d年%d月的总天数为%d天。\n", year, month, totalDays);
return 0;
}
```
需要注意的是,该代码中采用了一些简化计算的方法,可能存在误差,不适用于精确计算。
阅读全文