<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 isLeap(int n){
    if(n%100==0){
      if(n%400==0) return 1;  
      }
    else{
        if(n%4==0) return 1;
      }
    return 0;
    }
  int dayOfYear(string date) {
    int n=date.size();
    int i=0,j=0;
    vector<int>v;
     string s="";
    while(i<n){
      if(date[i]=='-'){
          s+=date.substr(j,i-j);
          v.push_back(stoi(s));
          s="";
          j=i+1;
        }
        i++;
      }
    s+=date.substr(j,i-j);
    v.push_back(stoi(s));
  
    vector<int>days_in_month={31,28,31,30,31,30,31,31,30,31,30,31};
    if(isLeap(v[0])){
        days_in_month[1]=29;
    }
    int month=v[1];
    int day=v[2];
    int res=0;
    for(int i=0;i<month-1;i++){
        res+=days_in_month[i];
    }
    res+=day;
    return res;
    }
};
13100