定义一个包括年、月、日的结构体。输入一个日期,计算该日在当年中是第几天。
时间: 2023-12-12 09:36:06 浏览: 32
以下是一个C语言的例子,实现了定义一个包括年、月、日的结构体,输入一个日期,计算该日在当年中是第几天的功能:
```c
#include <stdio.h>
typedef struct date {
int year;
int month;
int day;
int days[12];
} Date;
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int getDayOfYear(Date date) {
int i, sum = 0;
for (i = 0; i < date.month - 1; i++) {
sum += date.days[i];
}
sum += date.day;
if (isLeapYear(date.year) && date.month > 2) {
sum += 1;
}
return sum;
}
int main() {
Date date;
date.days[0] = 31;
date.days[1] = 28;
date.days[2] = 31;
date.days[3] = 30;
date.days[4] = 31;
date.days[5] = 30;
date.days[6] = 31;
date.days[7] = 31;
date.days[8] = 30;
date.days[9] = 31;
date.days[10] = 30;
date.days[11] = 31;
printf("请输入日期(格式:年 月 日):");
scanf("%d %d %d", &date.year, &date.month, &date.day);
printf("该日在当年中是第%d天\n", getDayOfYear(date));
return 0;
}
```