思路:主要就是注意的是,字符串到数字的转换,第二就是是否是闰年的条件。
class Solution {
public:
int rui[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
int ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int dayOfYear(string date) {
int l = date.size();
int cnt = 0;
int t = 0;
int an = 0;
bool ifRuiYear;
for(int i = 0; i < l; i++){
if(date[i] == '-'){
if(cnt == 0){
ifRuiYear = ifRui(t);
t = 0;
cnt++;
}else if(cnt == 1){
for(int j = 0; j < t - 1; j++){
if(ifRuiYear){
an += rui[j];
}else{
an += ping[j];
}
}
t = 0;
cnt++;
}
}else{
t = t * 10 + date[i] - '0';
}
if(i == l - 1){
// cout << t << endl;
an += t;
return an;
}
}
return an;
}
bool ifRui(int year){
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
return true;
}
return false;
}
};