<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 {
public:
    int dayOfYear(string date) {

        int year = stoi(date.substr(0, 4));
        int month = stoi(date.substr(5, 2));
        int dat = stoi(date.substr(8, 2));
        if (month == 1) {
            return dat;
        } else if (month == 2) {
            return 31 + dat;
        } else if (month == 3) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0)
                    return 31 + 29 + dat;
                else {
                    return 31 + 28 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + dat;
            } else {
                return 31 + 28 + dat;
            }

        } else if (month == 4) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0)
                    return 31 + 29 + 31 + dat;
                else {
                    return 31 + 28 + 31 + dat;
                }

            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + dat;
            } else {
                return 31 + 28 + 31 + dat;
            }

        } else if (month == 5) {
            // cout<<"in;";
            if (year % 100 == 0) {
                // cout<<"in;";
                if (year % 4 == 0 && year % 400 == 0) {
                    // cout<<"in;";
                    return 31 + 29 + 31 + 30 + dat;
                } else {
                    return 31 + 28 + 31 + 30 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                // cout<<"in;";
                return 31 + 29 + 31 + 30 + dat;
            } else {

                return 31 + 28 + 31 + 30 + dat;
            }

        } else if (month == 6) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0) {
                    return 31 + 29 + 31 + 30 + 31 + dat;
                } else {
                    return 31 + 28 + 31 + 30 + 31 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + dat;
            }

        } else if (month == 7) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0)
                    return 31 + 29 + 31 + 30 + 31 + 30 + dat;
                else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + 30 + dat;
            }

        } else if (month == 8) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0)
                    return 31 + 29 + 31 + 30 + 31 + 30 + 31 + dat;
                else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + 31 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + 31 + dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + 30 + 31 + dat;
            }

        } else if (month == 9) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0)
                    return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + dat;
                else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dat;
                }

            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dat;
            }

        } else if (month == 10) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0) {
                    return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dat;
                } else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dat;
            }

            else {
                return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dat;
            }

        } else if (month == 11) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0) {
                    return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 +
                           dat;
                } else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 +
                           dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dat;
            }

        } else if (month == 12) {
            if (year % 100 == 0) {
                if (year % 4 == 0 && year % 400 == 0) {
                    return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 +
                           30 + dat;
                } else {
                    return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 +
                           30 + dat;
                }
            } else if (year % 100 != 0 && year % 4 == 0) {
                return 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 +
                       dat;
            } else {
                return 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 +
                       dat;
            }
        }

        return 0;
    }
};
11900