计算日期是此年的第几天

输入3个整型变量代表年月日,计算这一天是这一年的第几天

int sum = 0;
int months[13] = {0,31,0,31,30,31,30,31,30,30,31,30,31};
int year,month,day;

printf("input year,month,day:\n");
scanf("%d%d%d",&year,&month,&day);

if ((year%100!=0&&year%4==0)||(year%400==0))
{
    months[2] = 29;
}
else
{
    months[2] = 28;
}

switch (month)
{
    case 1:case 3:case 5:case 7:case 8:case 10:
        if (day>0&&day<31)
        {
            for (int i = 1; i < month; i ++)
            {
                sum += months[i];
            }
            printf("%d年%d月%d日是%d年的第%d天。\n",year,month,day,year,sum+day);
        }
        else
        {
            printf("日期输入错误!");
        }
        break;
        
    case 4:case 6:case 9:case 11:
        if (day>0&&day<30)
        {
            for (int i = 1; i < month; i ++)
            {
                sum += months[i];
            }
            printf("%d年%d月%d日是%d年的第%d天。\n",year,month,day,year,sum+day);
        }
        else
        {
            printf("日期输入错误!");
        }
        break;
        
    case 2:
        if (day>0&&day<months[2])
        {
            sum = 31;
            printf("%d年%d月%d日是%d年的第%d天。\n",year,month,day,year,sum+day);
        }else
        {
            printf("日期输入错误!");
        }
        break;
        
    default:
        printf("月份输入错误!");
        break;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容