diff --git a/src/include/units/physical/si/time.h b/src/include/units/physical/si/time.h index 9bd60783..fcca48db 100644 --- a/src/include/units/physical/si/time.h +++ b/src/include/units/physical/si/time.h @@ -33,7 +33,8 @@ struct nanosecond : prefixed_unit {}; struct microsecond : prefixed_unit {}; struct millisecond : prefixed_unit {}; struct minute : named_scaled_unit, second> {}; -struct hour : named_scaled_unit, second> {}; +struct hour : named_scaled_unit, minute> {}; +struct day : named_scaled_unit, hour> {}; struct dim_time : physical::dim_time {}; @@ -66,6 +67,10 @@ constexpr auto operator""min(long double l) { return time(l constexpr auto operator""h(unsigned long long l) { return time(l); } constexpr auto operator""h(long double l) { return time(l); } +// d +constexpr auto operator""_d(unsigned long long l) { return time(l); } +constexpr auto operator""_d(long double l) { return time(l); } + } // namespace literals } // namespace units::si diff --git a/test/unit_test/static/si_test.cpp b/test/unit_test/static/si_test.cpp index 724064ab..de326a95 100644 --- a/test/unit_test/static/si_test.cpp +++ b/test/unit_test/static/si_test.cpp @@ -75,7 +75,10 @@ static_assert(1us == 1000ns); static_assert(1ms == 1000us); static_assert(1s == 1000ms); static_assert(1min == 60s); +static_assert(1h == 60min); static_assert(1h == 3600s); +static_assert(1_d == 24h); +static_assert(1_d == 86'400s); static_assert(nanosecond::symbol == "ns"); static_assert(microsecond::symbol == "µs");