第1个回答 2011-03-16
截取了一段 LZ参考下吧 格式不全。
-------------------------------------------------------
int month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //每个月的天数
int year,month,day,week,year_day=0; //变量声明
printf("===请输入第一个时间点 如2010 5 29===>:");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0 && year%100!=0) || year%400==0) //判断平年闰年 二月天数变化
{ month_day[2]++;
printf("%d年为【闰年】\n",year);
}
else
printf("%d年为【平年】\n",year);
for(i=0;i<month;i++) //循环累加天数到当前月
year_day=year_day+month_day[i]; //当前月加当前日期 即为总天数
year_day=year_day+day; //第一时间点是当年第几天。
printf("%d月%d号为%d年的第【%d天】\n",month,day,year,year_day);
第2个回答 推荐于2016-03-16
#include<stdio.h>
int N;
void main()
{ int zong_tian_shu( int, int );
int y,r,d;
do
scanf("%d%d%d",&N,&y,&r);
while(r<1||r>31||y<1||y>12);
d=zong_tian_shu(y,r);
printf("%d年%d月%d日是%d的第%d天\n",N,y,r,N,d);
}
int zong_tian_shu( int y, int r )
{ int f( int);
int d=0,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y>2)
d=f(N);
for(i=0;i<y;i++)
d=d+a[i];
d=d+r;
return(d);
}
int f( int N)
{ int d;
if(N%400==0||N%4==0&&N%100!=0)
d=1;
else d=0;
return(d);
}本回答被提问者采纳