由于是的标准输入格式,因此需要首先取出年、月、日。利用sstream字符串转数字的功能进行。
其次,平年2月28天,润年2月29天,因此还需要判断平、润年。
cpp:
class Solution {
public:
int dayOfYear(string date) {
stringstream ss1,ss2,ss3;
string stryear = date.substr(0,4);
string strmon = date.substr(5,7);
string strday = date.substr(8,10);
ss1<<stryear;
int year;
ss1>>year;
ss2<<strmon;
int month;
ss2>>month;
ss3<<strday;
int day;
ss3>>day;
vector<int> days = {31,28,31,30,31,30,31,31,30,31,30,31};
if (year%400==0 || (year%4==0 && year%100!=0)){
days[1] = 29;
}
int total = 0;
for (int i=1; i<month; i++){
total +=days[i-1];
}
total +=day;
return total;
}
};