[LeetCode]#1154. Day of the Year
2 min readApr 3, 2020
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 otherdate[i]
's are digitsdate
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: