Given a string date
representing a Gregorian calendar date formatted as YYYY-MM-DD
, return the day number of the year.
Input: date = "2019-01-09" Output: 9 Explanation: Given date is the 9th day of the year in 2019.
Input: date = "2019-02-10" Output: 41
Input: date = "2003-03-01" Output: 60
Input: date = "2004-03-01" Output: 61
date.length == 10
date[4] == date[7] == '-'
, and all otherdate[i]
's are digitsdate
represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.
impl Solution {
pub fn day_of_year(date: String) -> i32 {
let v: Vec<i32> = date.split('-').map(|s| s.parse().unwrap()).collect();
let mut m = vec![31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30];
let mut ans = v[2];
if (v[0] % 4 == 0 && v[0] % 100 != 0) || v[0] % 400 == 0 {
m[1] += 1;
}
for i in 1..v[1] {
ans += m[i as usize - 1];
}
ans
}
}