新手的每日一问
#include <stdio.h>int main()
{ int i,j;
int birth_year,now_year;
int birth_month,now_month;
int birth_day,now_day;
int count = 0;//计算总共活了多少天
int day_month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d",&birth_year,&birth_month,&birth_day);
printf("请输入今天的日期(如2016-03-28):");
scanf("%d-%d-%d",&now_year,&now_month,&now_day);
/*以生日1988-05-20今天是 2016-03-28为例,先算从1989年到2015年的所有天数
再算出生月份加一月即6月到12月的天数加上5月天数减去出生的天数,加上2016年1月1日到3月28日
的天数*/
for(birth_year += 1;birth_year<=now_year-1;birth_year++)
{
if(birth_year%4 == 0&&birth_year%100 != 0 ||birth_year%400==0)
{
day_month = 29;
for(i=0;i<=11;i++)
{
count += day_month;
}
}
else
{
for(i=0;i<=11;i++)
{
count += day_month;
}
}
}
if(birth_year%4 == 0&&birth_year%100 != 0 ||birth_year%400==0)
{
day_month = 29;
if (birth_month != 12)
{
for(j=birth_month;j<=12;j++)
{
count += day_month;
}
}
count += day_month - birth_day;
}
else
{
if (birth_month != 12)//如果出生日期是12月就不用算
{
for(j=birth_month;j<=12;j++)
{
count += day_month;
}
}
count += day_month - birth_day;//当前月份的天数减去剩下的天数
}
if(now_year%4 == 0&&now_year%100 != 0 ||now_year%400==0)
{
day_month = 29;
for(i = 1;i<=now_month;i++)
{
count += day_month;
}
count += birth_day;
}
else
{
for(i = 1; i<= now_month;i++)
{
count += day_month;
}
count += birth_day;
}
printf("您一定度过了%d天,日子过得真快请好好珍惜!",count);
return 0;
}
计算出来的天数和实际天数始终不对,我枯了{:10_266:} 感谢各位大佬的帮助 只要遇到闰年你就讲第二月永久改为29了,后面不是闰年的也按29算 BngThea 发表于 2019-3-5 10:45
只要遇到闰年你就讲第二月永久改为29了,后面不是闰年的也按29算
改了还是不行,{:10_266:}估计自己写的太麻烦了不知道哪里出了问题。。。。
页:
[1]