# [LeetCode]#1154. Day of the Year

--

Environment: Python 3.7

Key technique: datetime function, leap 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: 9Explanation: 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.

Analysis:

if (year is not divisible by 4) then (it is a common year)
else if (year is not divisible by 100) then (it is a leap year)
else if (year is not divisible by 400) then (it is a common year)
else (it is a leap year)

Solution:

`import datetimeclass Solution:    def dayOfYear(self, date):        year_check=int(date[0:4])        leap=0        if year_check % 400 ==0:            leap=1        if year_check % 4 ==0 and year_check % 100 !=0:            leap=1        day1 = datetime.datetime(int(date[0:4]), int(date[5:7]) , int(date[8:10]))        day2 = datetime.datetime(int(date[0:4]), int(12) , int(31))        ans=365-(day2-day1).days+leap        return ans`

Submitted result:

Lesson learn:

This case let me know the rule of leap year.

Reference:

https://en.wikipedia.org/wiki/Leap_year