输入某年某月某日,判断这一天是这一年的第几天c语言代码
时间: 2024-10-19 21:08:54 浏览: 42
输入某年某月某日,判断这一天是这一年的第几天?
在C语言中,你可以通过计算每个月份的天数来确定给定日期是一年中的第几天。这里有一个简单的示例代码,它假设输入的日期格式为"YYYY-MM-DD":
```c
#include <stdio.h>
int daysInMonth(int month, int year) {
switch(month) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
return 31;
case 4: // April
case 6: // June
case 9: // September
case 11: // November
return 30;
default: // February (check for leap year)
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { // Leap year
return 29;
} else {
return 28;
}
}
}
int main() {
int year, month, day;
scanf("%d-%d-%d", &year, &month, &day);
int total_days = 0;
for (int i = 1; i < month; ++i) {
total_days += daysInMonth(i, year);
}
total_days += day;
printf("这一天是一年中的第%d天.\n", total_days);
return 0;
}
```
这段代码首先定义了一个`daysInMonth`函数用于获取指定月份的天数,然后在`main`函数里根据用户输入的月份累加前几个月的总天数,并加上当前天数。注意这个简单版本仅考虑了平闰年的规则。
阅读全文