From: "naruse (Yui NARUSE) via ruby-core" Date: 2025-08-22T07:36:51+00:00 Subject: [ruby-core:123047] [Ruby Feature#21533] Introduce `Time#am?` and `Time#pm?` Issue #21533 has been updated by naruse (Yui NARUSE). Status changed from Open to Rejected We discussed about the edge cases 00:00 and 12:00 in developer meeting. After some discussion we concluded there is no consensus whether 00:00 and 12:00 are a.m. or p.m. For example U.S. Government Publishing Office, they changed the definition in 2008. It feels it is still unstable. https://en.wikipedia.org/wiki/12-hour_clock#Confusion_at_noon_and_midnight ---------------------------------------- Feature #21533: Introduce `Time#am?` and `Time#pm?` https://bugs.ruby-lang.org/issues/21533#change-114364 * Author: matheusrich (Matheus Richard) * Status: Rejected ---------------------------------------- This proposal adds two predicate methods to `Time`: ```ruby Time.utc(2000, 1, 1, 11, 59, 59).am? # => true Time.utc(2000, 1, 1, 12, 0, 0).pm? # => true ``` * `am?` returns true when the hour is less than 12. * `pm?` returns true when the hour is 12 or greater. These methods provide a clear and expressive way to branch logic based on time of day. For example: ```ruby def reminder_deferral_options options = [] options << ["Later today", "later_today"] if Time.now.am? options << ["Tomorrow morning", "tomorrow_morning"] options << ["Pick a date/time���", "custom"] options end ``` This is a common pattern in applications involving reminders and scheduling. The method names are intuitive, and the semantics are well understood. The implementation is in [this Pull Request](https://github.com/ruby/ruby/pull/14133). -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/