#include <chrono>
#include <iostream>
using namespace std;
// Returns the number of seconds between two dates.
// Positive if endDate is after startDate, negative otherwise.
long long secondsBetweenDates(
const chrono::year_month_day& startDate,
const chrono::year_month_day& endDate)
{
// Convert calendar dates to time points.
chrono::sys_days start{startDate};
chrono::sys_days end{endDate};
// Compute the duration and convert to seconds.
auto duration = end - start;
auto seconds = chrono::duration_cast<chrono::seconds>(duration);
return seconds.count();
}
int main()
{
// Create two dates: YYYY/MM/DD
chrono::year_month_day startDate{
chrono::year{2024},
chrono::month{1},
chrono::day{1}
};
chrono::year_month_day endDate{
chrono::year{2024},
chrono::month{12},
chrono::day{31}
};
long long seconds = secondsBetweenDates(startDate, endDate);
cout << "Seconds between dates: "
<< seconds << '\n';
}
/*
run:
31536000
*/