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.
public class Solution {
public int DayOfYear(string date) {
var arr = date.Split('-');
bool isLeap = checkYear(int.Parse(arr[0]));
var months = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
int count = 0;
for(int i=0;i<int.Parse(arr[1])-1;i++){
if(isLeap && i==1){
count+=1;
}
count+=months[i];
}
count+=int.Parse(arr[2]);
return count;
}
private bool checkYear(int year){
if(year%400==0){
return true;
}
if(year%100==0){
return false;
}
if( year %4 == 0){
return true;
}
return false;
}
}
Time Complexity: O(1)
Space Complexity: O(1)


