admin管理员组文章数量:1123063
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日并且过18年后不是闰年*/
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;
}
本文标签: c语言某年某月某日的天数输入某年某月某日,判断这一天是这一年的第几天
版权声明:本文标题:c语言某年某月某日的天数,输入某年某月某日,判断这一天是这一年的第几天... 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1702329341a579415.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论