DateTime operator- (const DateTime& first, const Duration& second)
{
    return first - second.YearMonth() - second.DayTime();
}
bool operator== (const Duration& first, const Duration& second)
{
    return first.YearMonth() == second.YearMonth() &&
           first.DayTime() == second.DayTime();
}
DateTime operator+ (const DateTime& first, const Duration& second)
{
    // order is important:
    return first + second.YearMonth() + second.DayTime();
}