【每日一题】计算日期到天数的转换
相关文章:
1、题目来源
牛客网:计算日期到天数的转换
2、题目描述
根据输入的日期,计算是这一年的第几天。输入某年某月某日,判断这一天是这一年的第几天?
注意:测试用例有多组,注意循环输入
3、输入/出描述
输入描述:
输入多行,每行空格分割,分别是年,月,日
输出描述:
成功: 返回outDay输出计算后的第几天
失败:返回-1
4、示例
输入: 2012 12 31
输出: 366
5、代码展示
#include<iostream>
using namespace std;
int main()
{
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
//循环接收多组测试用例,直至无输入时while循环结束
while(cin>>year>>month>>day)
{
//2020 9 20
//前8个月加起来
//再加30天
//注意:闰年的2月份
int totalDays =0;
//加整月
for(int i=1;i<month;++i)
{
totalDays+=days[i];
}
//判断闰年,闰年的2月需要+1
//四年一闰百年不闰,每四百年再一闰
if((0==year%4)&&(0!=year%100)||(0==year%400))
{
if(month>2) //只有是闰年且超过2月份才会加1
totalDays+=1;
}
//加余下的天
totalDays+=day;
//输出
cout<<totalDays<<endl;
}
}