解题思路:
(1)切分字符串
(2)注意闰年
class Solution {
public :
int months[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
public:
bool isleap(int year) {
if((year%4==0 && year%100!=0) || year%400==0) return true;
else return false;
}
public:
int dayOfYear(string date) {
int year = stoi(date.substr(0,4));
int month = stoi(date.substr(5,2));
int day = stoi(date.substr(8,2));
int sumdays = 0;
for(int i=1;i<month;i++) {
if(i==2) {
if(isleap(year)) sumdays+=29;
else sumdays+=months[i-1];
} else sumdays+=months[i-1];
}
sumdays+=day;
return sumdays;
}
};