输入某年某月某日,判断这一天是这一年的第几天。用c语言怎么写
时间: 2023-11-20 12:12:45 浏览: 101
java 输入某年某月某日,判断这一天是这一年的第几天
以下是一种可能的 C 语言实现:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 计算某个月份的天数
int getDaysOfMonth(int year, int month) {
static const int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month == 2 && isLeapYear(year)) {
return 29;
} else {
return days[month - 1];
}
}
// 计算某年某月某日是这一年的第几天
int getDayOfYear(int year, int month, int day) {
int days = 0;
for (int i = 1; i < month; i++) {
days += getDaysOfMonth(year, i);
}
days += day;
return days;
}
int main() {
int year, month, day;
printf("请输入年月日,格式为yyyy-mm-dd:");
scanf("%d-%d-%d", &year, &month, &day);
int dayOfYear = getDayOfYear(year, month, day);
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, dayOfYear);
return 0;
}
```
这个程序中,`isLeapYear` 函数用来判断一个年份是否为闰年;`getDaysOfMonth` 函数用来计算某个月份的天数;`getDayOfYear` 函数用来计算某年某月某日是这一年的第几天。在 `main` 函数中,先提示用户输入日期,然后调用 `getDayOfYear` 函数计算出结果并输出。注意在输入日期时需要使用 `%d-%d-%d` 的格式化字符串以匹配日期的格式。
阅读全文