LeetCode 1154. Day of the Year (

2020-11-18  本文已影响0人  LiNGYu_NiverSe

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.

Solution

class Solution:
    def dayOfYear(self, date: str) -> int:
        y, m, d = map(int, date.split("-"))
        days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        if y % 400 == 0 or (y % 100 != 0 and y % 4 == 0):
            days[1] = 29
        return sum(days[:(m-1)]) + d 

Explanation
Since days of each month is different and we need to consider if the year is leap year, we can simply create a list of days of each month. Then if the year is a leap year, we can update the days of February to 29. Finally we can use the month as index to sum all days up (don't forget d)

上一篇 下一篇

猜你喜欢

热点阅读