# [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:** 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.

**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 datetime`

class 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:**