Blogs Hub

by Sumit Chourasia | Oct 01, 2020 | Category :coding | Tags : algorithm data-structure easy leetcode maths

Day of the Year - Math - Easy - LeetCode

Day of the Year - Math - Easy - LeetCode

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)

Contributed By: Sumit Chourasia
Minimum Path Sum - Array - Medium - LeetCode
Contributed By: Sumit Chourasia
Sort Colors - Array - Medium - LeetCode