本文主要是介绍计算日期到天数转换【编程题】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
描述
根据输入的日期,计算是这一年的第几天。。
详细描述:
输入某年某月某日,判断这一天是这一年的第几天?。
输入
输入三行,分别是年,月,日
输出
成功:返回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;
}
这篇关于计算日期到天数转换【编程题】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!