关闭

计算日期到天数转换【编程题】

163人阅读 评论(0) 收藏 举报
分类:

题目

描述

根据输入的日期,计算是这一年的第几天。。
详细描述:
输入某年某月某日,判断这一天是这一年的第几天?。

输入

输入三行,分别是年,月,日

输出

成功:返回outDay
输出计算后的第几天;
失败:返回-1

样例输入

2016 12 31

样例输出

366

思路

是先建立一个数组保存每月累计的日子,判断是否是闰年,然后加1

代码

#include <iostream>
using namespace std;

bool loopyear(int year)    //判断是否是闰年
{
    if((year%4==0&&year%100!=0)||year%400==0)
    {
        return 1;
    }
    else
    {
        return 0;
    }

}
bool checkDay(int month, int day)//检查输入的合法性
{
    int a[13]= {0,31,59,90,120,151,181,212,243,273,304,334,365};
    if(day>0&&day<=(a[month]-a[month-1]))
    {
        return true;
    }
    return false;
}

int getOutDay(int year, int month, int day)
{
    int sum=0;
    int a[12]= {0,31,59,90,120,151,181,212,243,273,304,334};
    bool isDayOk=checkDay(month,day);
    if (loopyear(year)&&month>2&&isDayOk)//如果是闰年且月份大于2
    {
        sum=a[month-1]+day+1;
    }
    else if(isDayOk)
    {
        sum=a[month-1]+day;
    }
    else
    {
        sum=-1;
    }
    return sum;
}

int main()
{
    int year,month,day;
    cin>>year;
    cin>>month;
    cin>>day;
    cout<<getOutDay(year,month,day);
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8615次
    • 积分:925
    • 等级:
    • 排名:千里之外
    • 原创:88篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条