## 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 == date == '-'`, and all other `date[i]`'s are digits
• `date` represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.

## Rust Solution

``````struct Solution;

impl Solution {
fn day_of_year(date: String) -> i32 {
let a: Vec<&str> = date.split_terminator('-').collect();
let year = a.parse::<usize>().unwrap();
let month = a.parse::<usize>().unwrap();
let day = a.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;
}
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);
}
``````

Having problems with this solution? Click here to submit an issue on github.