基础数学 - 日期 - 闺年判定
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
知识点:
闰年的判断:满足其中一个条件就行
①被4整除且被100整除
②被400整除
c++11特性,stl容器可用{}初始化
易错点:
sum初始值
循环变量i < month
eg:1月20日,20(day)+0(monthday[0])
#include <iostream>
using namespace std;
#include <vector>
bool IsLeapYear(int year)
{
if (year / 4 == 0 && year / 100 == 0)
return true;
if (year / 400 == 0)
return true;
return false;
}
int main()
{
vector<int> monthday = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int year, month, day;
char c;
while (cin >> year >> c >> month >> c >> day)
{
if (IsLeapYear(year))
{
monthday[2] = 29;
}
else
{
monthday[2] = 28;
}
int sum = day;
for (int i = 1; i < month; i++)
{
sum += monthday[i];
}
cout << sum << endl;
}
return 0;
}