diff options
Diffstat (limited to 'absl/time/internal/cctz/include')
-rw-r--r-- | absl/time/internal/cctz/include/cctz/civil_time.h | 4 | ||||
-rw-r--r-- | absl/time/internal/cctz/include/cctz/civil_time_detail.h | 14 |
2 files changed, 10 insertions, 8 deletions
diff --git a/absl/time/internal/cctz/include/cctz/civil_time.h b/absl/time/internal/cctz/include/cctz/civil_time.h index aa578ee3648c..85d0d3ffffb5 100644 --- a/absl/time/internal/cctz/include/cctz/civil_time.h +++ b/absl/time/internal/cctz/include/cctz/civil_time.h @@ -279,7 +279,7 @@ using civil_second = detail::civil_second; // using detail::weekday; -// Returns the weekday for the given civil_day. +// Returns the weekday for the given civil-time value. // // civil_day a(2015, 8, 13); // weekday wd = get_weekday(a); // wd == weekday::thursday @@ -313,7 +313,7 @@ using detail::get_weekday; using detail::next_weekday; using detail::prev_weekday; -// Returns the day-of-year for the given civil_day. +// Returns the day-of-year for the given civil-time value. // // civil_day a(2015, 1, 1); // int yd_jan_1 = get_yearday(a); // yd_jan_1 = 1 diff --git a/absl/time/internal/cctz/include/cctz/civil_time_detail.h b/absl/time/internal/cctz/include/cctz/civil_time_detail.h index 3e2434033935..0dcb1ad46ba2 100644 --- a/absl/time/internal/cctz/include/cctz/civil_time_detail.h +++ b/absl/time/internal/cctz/include/cctz/civil_time_detail.h @@ -535,7 +535,8 @@ enum class weekday { sunday, }; -CONSTEXPR_F weekday get_weekday(const civil_day& cd) noexcept { +template <typename T> +CONSTEXPR_F weekday get_weekday(const civil_time<T>& ct) noexcept { CONSTEXPR_D weekday k_weekday_by_mon_off[13] = { weekday::monday, weekday::tuesday, weekday::wednesday, weekday::thursday, weekday::friday, weekday::saturday, @@ -546,9 +547,9 @@ CONSTEXPR_F weekday get_weekday(const civil_day& cd) noexcept { CONSTEXPR_D int k_weekday_offsets[1 + 12] = { -1, 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4, }; - year_t wd = 2400 + (cd.year() % 400) - (cd.month() < 3); + year_t wd = 2400 + (ct.year() % 400) - (ct.month() < 3); wd += wd / 4 - wd / 100 + wd / 400; - wd += k_weekday_offsets[cd.month()] + cd.day(); + wd += k_weekday_offsets[ct.month()] + ct.day(); return k_weekday_by_mon_off[wd % 7 + 6]; } @@ -594,12 +595,13 @@ CONSTEXPR_F civil_day prev_weekday(civil_day cd, weekday wd) noexcept { } } -CONSTEXPR_F int get_yearday(const civil_day& cd) noexcept { +template <typename T> +CONSTEXPR_F int get_yearday(const civil_time<T>& ct) noexcept { CONSTEXPR_D int k_month_offsets[1 + 12] = { -1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, }; - const int feb29 = (cd.month() > 2 && impl::is_leap_year(cd.year())); - return k_month_offsets[cd.month()] + feb29 + cd.day(); + const int feb29 = (ct.month() > 2 && impl::is_leap_year(ct.year())); + return k_month_offsets[ct.month()] + feb29 + ct.day(); } //////////////////////////////////////////////////////////////////////// |