YTU 问题 J: C语言习题 计算该日在本年中是第几天
时间: 2023-06-08 07:07:55 浏览: 104
C语言计算某日是该年的第几天
ChitGPT: 这个问题是已知年月日,需要计算出这一天在本年中是第几天。对于这个问题,我们可以使用结构体来表示日期,然后编写一个函数来计算给定日期在本年中是第几天。以下是一个示例C语言代码:
```
#include <stdio.h>
struct Date {
int day;
int month;
int year;
};
int isLeapYear(int year) {
return ((year%4==0 && year%100!=0) || year%400==0);
}
int dayOfYear(struct Date d) {
int monthDays[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int i, totalDays = 0;
for (i = 1; i < d.month; i++) {
totalDays += monthDays[i];
}
totalDays += d.day;
if (isLeapYear(d.year) && d.month > 2) {
totalDays += 1;
}
return totalDays;
}
int main() {
struct Date d = {31, 12, 2021};
printf("该日在本年中是第%d天\n", dayOfYear(d));
return 0;
}
```
在这个示例中,我们首先定义了一个日期结构体,并编写了一个名为isLeapYear的函数来判断该年份是否是闰年。
然后,我们编写了dayOfYear函数来计算给定日期在本年中是第几天。具体来说,我们使用monthDays数组来存储每个月的天数,然后逐个累加。如果该年是闰年且月份大于2,则需要将总天数加1。最后,我们在主函数中创建一个日期对象并调用dayOfYear函数来计算结果并将其打印到控制台。
以上就是一个可能的解决方案,希望可以帮到你!
阅读全文