Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- bool leapYear(int year)
- {
- return (year % 400 == 0) or ((year % 100 != 0) and (year % 4 == 0));
- }
- int daysTillMonth(int month, int year)
- {
- const int monthInYear{ 12 };
- const int daysInMonth[monthInYear]{ 31,28 + leapYear(year),31,30,31,30,31,31,30,31,30,31 };
- int days{ 0 };
- --month;
- for (int curMonth{ 0 }; curMonth < month; days += daysInMonth[curMonth++]);
- return days;
- }
- int dateDiff(int dayBegin, int monthBegin, int yearBegin, int dayEnd, int monthEnd, int yearEnd)
- {
- const int daysInYear{ 365 };
- int days{ (yearEnd - yearBegin) * daysInYear };
- for (int year{ yearBegin }; year <= yearEnd; days += leapYear(year++));
- days -= (daysTillMonth(monthBegin, yearBegin) + dayBegin);
- days += (daysTillMonth(monthEnd, yearEnd) + dayEnd);
- return days;
- }
- int main()
- {
- std::cout << dateDiff(15, 5, 1800, 15, 5, 2020) << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement