From: "nobu (Nobuyoshi Nakada) via ruby-core" Date: 2025-08-07T01:48:33+00:00 Subject: [ruby-core:122929] [Ruby Feature#21533] Introduce `Time#am?` and `Time#pm?` Issue #21533 has been updated by nobu (Nobuyoshi Nakada). I'm not against the methods themselves, since there are similar methods such as `monday?`, `tuesday?`, and so on. (no `january?`, `february?`, etc though) But your example, selecting by `am?`, seems less convincing. What will you do if the criteria is changed, or more options are added? Add `morning?`, `daytime?`, and others? ```ruby def reminder_deferral_options now = Time.now options = [] options << ["Around noon", "around_noon"] if now.morning? options << ["Later today", "later_today"] if now.am? options << ["Tonight", "tonight"] if now.daytime? options << ["Tomorrow morning", "tomorrow_morning"] options << ["Pick a date/time���", "custom"] options end ``` ---------------------------------------- Feature #21533: Introduce `Time#am?` and `Time#pm?` https://bugs.ruby-lang.org/issues/21533#change-114235 * Author: matheusrich (Matheus Richard) * Status: Open ---------------------------------------- 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/