 	{
 		const int z = unixDate + 719468;
 		const int era = (z >= 0 ? z : z - 146096) / 146097;
-		const unsigned doe = static_cast<unsigned>(z - era * 146097);          // [0, 146096]
-		const unsigned yoe = (doe - doe/1460 + doe/36524 - doe/146096) / 365;  // [0, 399]
-		//		const int y = static_cast<int>(yoe) + era * 400;
-		const unsigned doy = doe - (365*yoe + yoe/4 - yoe/100);                // [0, 365]
-		const unsigned mp = (5*doy + 2)/153;                                   // [0, 11]
-		return doy - (153*mp+2)/5 + 1;                             // [1, 31]
+		const unsigned doe = static_cast<unsigned>(z - era * 146097);
+		const unsigned yoe = (doe - doe/1460 + doe/36524 - doe/146096) / 365;
+		const unsigned doy = doe - (365*yoe + yoe/4 - yoe/100);
+		const unsigned mp = (5*doy + 2)/153;
+		return doy - (153*mp+2)/5 + 1;
 	}
 };
 

    const unsigned d = doy - (153*mp+2)/5 + 1;                             // [1, 31]
    const unsigned m = mp + (mp < 10 ? 3 : -9);                            // [1, 12]
    return std::tuple<Int, unsigned, unsigned>(y + (m <= 2), m, d);
 */



	{
		const int z = unixDate + 719468;
		const int era = (z >= 0 ? z : z - 146096) / 146097;
		const unsigned doe = static_cast<unsigned>(z - era * 146097);
		const unsigned yoe = (doe - doe/1460 + doe/36524 - doe/146096) / 365;
		const int y = static_cast<int>(yoe) + era * 400;
		const unsigned doy = doe - (365*yoe + yoe/4 - yoe/100);
		const unsigned mp = (5*doy + 2)/153;
		const unsigned m = mp + (mp < 10 ? 3 : -9);
		if (m <= 2)
			return y + 1;
		else
