Number of Days Between Two Dates LeetCode solution in C++
1class Solution {2public:3int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};4bool isLeap(int y) {5return (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0));6}7int calc(string s) {8int y = stoi(s.substr(0, 4));9int m = stoi(s.substr(5, 2));10int d = stoi(s.substr(8));11for (int i = 1971; i < y; i++) d += isLeap(i) ? 366 : 365;12d += accumulate(begin(days), begin(days) + m - 1, 0);13d += (m > 2 && isLeap(y)) ? 1 : 0;14return d;15}16int daysBetweenDates(string date1, string date2) {17int ans = abs(calc(date2) - calc(date1));18return ans;19}20};