<p>Given a string <code>date</code> representing a <a href="https://en.wikipedia.org/wiki/Gregorian_calendar" target="_blank">Gregorian calendar</a> date formatted as <code>YYYY-MM-DD</code>, return <em>the day number of the year</em>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> date = &quot;2019-01-09&quot;
<strong>Output:</strong> 9
<strong>Explanation:</strong> Given date is the 9th day of the year in 2019.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> date = &quot;2019-02-10&quot;
<strong>Output:</strong> 41
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>date.length == 10</code></li>
	<li><code>date[4] == date[7] == &#39;-&#39;</code>, and all other <code>date[i]</code>&#39;s are digits</li>
	<li><code>date</code> represents a calendar date between Jan 1<sup>st</sup>, 1900 and Dec 31<sup>th</sup>, 2019.</li>
</ul>

class Solution:
    def dayOfYear(self, date: str) -> int:
        year = int(date.split('-')[0])
        month = date.split('-')[1]
        day = date.split('-')[2]

        leap_year_flag = 0
        if ((year % 400 == 0) or (year % 100 != 0) and (year % 4 == 0)):   #((year%4==0) or (year%400==0)) and (year%100!=0):
            leap_year_flag = 1
        
        month_days_dict = {1: 31, 2:28, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}
        if leap_year_flag:
            month_days_dict[2] += 1
        
        month_num = int(month) - 1
        sum1 = 0
        for i in range(1, month_num+1):
            sum1 += month_days_dict[i]
        sum2 = sum1+int(day)

        return sum2


16500