<p>Write a program to count the number of days between two dates.</p>

<p>The two dates are given as strings, their format is <code>YYYY-MM-DD</code>&nbsp;as shown in the examples.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> date1 = "2019-06-29", date2 = "2019-06-30"
<strong>Output:</strong> 1
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> date1 = "2020-01-15", date2 = "2019-12-31"
<strong>Output:</strong> 15
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li>The given dates are valid&nbsp;dates between the years <code>1971</code> and <code>2100</code>.</li>
</ul>

class Solution:
    def daysBetweenDates(self, date1: str, date2: str) -> int:
        M = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        for i in range(1, len(M)):
            M[i] += M[i-1]
        D1 = [int(_) for _ in date1.split("-")]
        D2 = [int(_) for _ in date2.split("-")]
        def to_days(Y: int, MM: int, D: int):
            R = (Y-1952)*365
            R += (Y-1-1952)//4
            R += M[MM-2] if MM > 1 else 0
            if MM > 2 and ((Y-1952) % 4 == 0) and Y != 2100:
                R += 1
            R += D
            return R
        return abs(to_days(*D1)-to_days(*D2))
16700