1154. Day of the Year

Given a string `date` representing a Gregorian calendar date formatted as `YYYY-MM-DD`, return the day number of the year.

Example 1:

```Input: date = "2019-01-09"
Output: 9
Explanation: Given date is the 9th day of the year in 2019.
```

Example 2:

```Input: date = "2019-02-10"
Output: 41
```

Example 3:

```Input: date = "2003-03-01"
Output: 60
```

Example 4:

```Input: date = "2004-03-01"
Output: 61
```

Constraints:

• `date.length == 10`
• `date[4] == date[7] == '-'`, and all other `date[i]`'s are digits
• `date` represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.

1154. Day of the Year
``````struct Solution;

impl Solution {
fn day_of_year(date: String) -> i32 {
let a: Vec<&str> = date.split_terminator('-').collect();
let year = a[0].parse::<usize>().unwrap();
let month = a[1].parse::<usize>().unwrap();
let day = a[2].parse::<usize>().unwrap();
let mut days: Vec<usize> = vec![31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let mut sum = 0;
if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {
days[1] += 1;
}
for i in 0..month - 1 {
sum += days[i];
}
sum += day;
sum as i32
}
}

#[test]
fn test() {
assert_eq!(Solution::day_of_year("2019-01-09".to_string()), 9);
assert_eq!(Solution::day_of_year("2019-02-10".to_string()), 41);
assert_eq!(Solution::day_of_year("2003-03-01".to_string()), 60);
assert_eq!(Solution::day_of_year("2004-03-01".to_string()), 61);
}
``````