通过函数调用,输出某一天是这一年中的第几天。(注:使用Switch)

/*-------------------------------------------------------
通过函数调用,输出某一天是这一年中的第几天。(注:使用Switch)
-------------------------------------------------------*/
#include <stdio.h>
int day(int y,int m,int d);
main()
{
	int y,m,d,s;
	printf("请输入一个日期(yyyy-mm-dd):");
	scanf("%d-%d-%d",&y,&m,&d);
	s=day(y,m,d);
	printf("%d-%d-%d是这一年中的第%d天\n",y,m,d,s);
}
int day(int y,int m,int d)
{
	int i,s;
	s=0;
/**********Program**********/
	
	switch(m) // 先计算某月以前月份的总天数
    {
        case 1:s=0;break;
        case 2:s=31;break;//1月31天 
        case 3:s=59;break;//2月28 
        case 4:s=90;break;//3月31天,以此类推 
        case 5:s=120;break;
        case 6:s=151;break;
        case 7:s=181;break;
        case 8:s=212;break;
        case 9:s=243;break;
        case 10:s=273;break;
        case 11:s=304;break;
        case 12:s=334;break;
        default:printf("data error");break;
    }
    s=s+d; // 再加上某天的天数
    if(y % 400 == 0||(y % 4 == 0 && y % 100 != 0)) {// 判断是不是闰年
         i=1;
    } else {
        i=0;
    }
    if(i == 1 && m > 2) { // *如果是闰年且月份大于2,总天数应该加一天
        s++;
    }	
    return s;
/**********  End  **********/	

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值