100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c语言某年某月某日的天数 输入某年某月某日 判断这一天是这一年的第几天...

c语言某年某月某日的天数 输入某年某月某日 判断这一天是这一年的第几天...

时间:2019-01-03 04:49:28

相关推荐

c语言某年某月某日的天数 输入某年某月某日 判断这一天是这一年的第几天...

看看:

#include

/* year是否为闰年 */

int leapyear(int year)

{

if( (year%4==0 && year%100!=0) || year%400==0 )

return 1;

else

return 0;

}

/* 求某年某月某日是该年的第几天 */

int dayindex(int year,int month,int day)

{

int days=0,d;

int i;

for(i=1;i

{

switch(i)

{

case 1:case 3:case 5:case 7:case 8:case 10:case 12:

d=31;break;

case 4:case 6:case 9:case 11:

d=30;break;

case 2:

if(leapyear(year))

d=29;

else

d=28;

break;

}

days+=d;

}

days+=day;

return days;

}

int main( )

{

int T,k;

int year,month,day;

int i;

int daysum;

int flag;

scanf("%d",&T);

for(k=0;k

{

/* 输入年,月,日 */

scanf("%d-%d-%d",&year,&month,&day);

/* 看看你有没有18岁的生日:只有出生在闰年2月29日并且过后不是闰年*/

flag=1;

if( leapyear(year)==1 && month==2 && day==29 && leapyear(year+18)==0 )

flag=0;

else

{

/* 求该年后第一年至18岁生日前以前所经历的天数 */

daysum=0;

for(i=year+1;i

{

daysum+=365;

if(leapyear(i))

daysum++;

}

/* 总的天数要加上出生那年所剩天数和18岁那年多活的天数 */

if(leapyear(year))

daysum+=(366-dayindex(year,month,day));

else

daysum+=(365-dayindex(year,month,day));

daysum+=dayindex(year+18,month,day);

}

if(flag)

{

/* 输出到18岁生日那天你所经历的天数,好好珍惜时间哦 */

printf("%d\n",daysum);

}

else

printf("-1\n");

}

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。