题目如下:
Given a string
date
representing a Gregorian calendar date formatted asYYYY-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: 41Example 3:
Input: date = "2003-03-01" Output: 60Example 4:
Input: date = "2004-03-01" Output: 61Constraints:
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.
解题思路:题目很简单,注意区分闰年和平年即可。
代码如下:
class Solution(object): def dayOfYear(self, date): """ :type date: str :rtype: int """ date = date.split('-') year = date[0] def isLeapYear(year): return (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0 month_list = [31,28,31,30,31,30,31,31,30,31,30,31] if isLeapYear(int(year)): month_list[1] += 1 month = int(date[1]) return sum(month_list[:month-1]) + int(date[2])