C语言编程练习题_04一年的第几天
题目来源于网络,代码使用GCC编译运行通过。
给定一个日期,输出这个日期是该年的第几天。
代码如下
#include <stdio.h>
struct TimeTypedef
{
int year;
int month;
int day;
}TimeType;
//每月之前的天数
int data[12]={0,31,28,31,30,31,30,31,31,30,31,30};
int DJT(struct TimeTypedef time)
{
int sum = 0;
char i = 0;
if( (time.month < 0) || (time.month > 12) || (time.day < 0) || (time.day > 31))return 0;
for(i= 0; i < time.month;i++)
{
sum += data[i];
}
sum += time.day;
if( (time.month > 2) && (((time.year%4)&&(!time.year%100))||(time.year%400)) )sum += 1;
return sum;
}
int main()
{
struct TimeTypedef time={0};
int sum = 0;
printf("\r\nPlease Input Year、Month and day\r\n");
scanf("%d%d%d",&time.year,&time.month,&time.day);
sum = DJT(time);
printf("\r\nThis is the %d day of %d\r\n",sum,time.year);
}