输入某年某月某日,判断这一天是这一年的第几天?

这段代码是自己写的

//输入某年某月某日,判断这一天是这一年的第几天?

#include<stdio.h>

//判断输入的年份是闰年还是平年的函数
int Year(int year)
{
	if((year%4==0&&year%100!=0)||(year%400)==0)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

//主函数
int main()
{ 
	int year,month,day;
	int sum=0;//天数之和
	int eryue;//二月
	scanf("%d%d%d",&year,&month,&day);

	if(year)//用闰年还是平年得出二月eryue=28还是29!
	{
		eryue=29;
	}
	else
	{
		eryue=28;
	}

	switch(month)
	{
	 case 1:
			 sum=day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 2:
			 sum=31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 3:
			 sum=31+eryue+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 4:
			 sum=31+eryue+31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 5:
			 sum=31+eryue+31+30+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 6:
			 sum=31+eryue+31+30+31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 7:
			 sum=31+eryue+31+30+31+30+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 8:
			 sum=31+eryue+31+30+31+30+31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 9:
			 sum=31+eryue+31+30+31+30+31+31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 10:
			 sum=31+eryue+31+30+31+30+31+31+30+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 11:
			 sum=31+eryue+31+30+31+30+31+31+30+31+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 case 12:
			 sum=31+eryue+31+30+31+30+31+31+30+31+30+day;
			 printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,sum);
			 break;
	 default:
			printf("输入月份有错");
			break;
	}

}


下面的代码是网上的一段

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

#include <stdio.h>

int main()
{
    int day,month,year,sum,leap;
    printf("\nplease input year,month,day\n");
    scanf("%d,%d,%d",&year,&month,&day);
	printf("%d,%,d%d",year,month,day);
    switch(month)/*先计算某月以前月份的总天数*/
    {
        case 1:
			sum=0;break;
        case 2:
			sum=31;break;
        case 3:
			sum=59;break;
        case 4:
			sum=90;break;
        case 5:
			sum=120;break;
        case 6:
			sum=151;break;
        case 7:
			sum=181;break;
        case 8:
			sum=212;break;
        case 9:
			sum=243;break;
        case 10:
			sum=273;break;
        case 11:
			sum=304;break;
        case 12:
			sum=334;break;
        default:
			printf("data error");
			break;
    }
    sum=sum+day; /*再加上某天的天数*/
    if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
        leap=1;
    else
        leap=0;
    if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
        sum++;
    printf("It is the %d  day.",sum);
    

    return 0;
}



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝地反击T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值