c语言输入某一个日期,计算该日期是本年的第几天。任务具体要求如下:定义一个结构体类型Date,成员包括年、月、日。编写一个函数days(),计算本日是本年中的第几天。从键盘输入日期
时间: 2024-05-25 13:17:37 浏览: 109
#include <stdio.h>
typedef struct Date{
int year;
int month;
int day;
}Date; // 定义Date结构体类型
int days(Date date);
int main()
{
Date date;
printf("请输入年、月、日:\n");
scanf("%d%d%d",&date.year,&date.month,&date.day);
int num = days(date);
printf("%d年%d月%d日是本年的第%d天。\n",date.year,date.month,date.day,num);
return 0;
}
int days(Date date)
{
int month_days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月的天数
int sum = 0;
for(int i=1;i<date.month;i++) // 计算之前月份的天数和
{
sum += month_days[i];
}
sum += date.day; // 加上当月天数
if((date.year%4==0&&date.year%100!=0)||date.year%400==0) // 判断是否是闰年
{
if(date.month>2) // 闰年且在2月之后,2月份天数加1
{
sum++;
}
}
return sum;
}
阅读全文