用C语言写输入年月日输出是这一年第几天的代码
时间: 2023-10-02 08:08:20 浏览: 127
C语言案例:键盘输入年月日,计算这一天是这一年的第几天详解.docx
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int year, month, day, days;
printf("请输入年月日,格式为yyyy-mm-dd: ");
scanf("%d-%d-%d", &year, &month, &day);
// 计算当月之前的总天数
days = day;
switch (month - 1) {
case 12: days += 31; // 12月
case 11: days += 30; // 11月
case 10: days += 31; // 10月
case 9: days += 30; // 9月
case 8: days += 31; // 8月
case 7: days += 31; // 7月
case 6: days += 30; // 6月
case 5: days += 31; // 5月
case 4: days += 30; // 4月
case 3: days += 31; // 3月
case 2: // 2月
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
days += 29;
} else {
days += 28;
}
case 1: days += 31; // 1月
}
// 如果是闰年且月份大于2月,总天数要加1
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
if (month > 2) {
days += 1;
}
}
printf("这一天是这一年的第%d天。\n", days);
return 0;
}
```
输入年月日,程序会计算当月之前的总天数,并根据是否是闰年来判断是否需要再加上1天。最终输出是这一年的第几天。
阅读全文