Class: Date
- Inherits:
-
Object
- Object
- Date
- Defined in:
- lib/openhab/core_ext/ruby/date.rb
Overview
Extensions to Date
Direct Known Subclasses
Instance Method Summary collapse
-
#coerce(other) ⇒ Array?
Convert
otherto Date, if possible. - #compare_with_coercion(other) ⇒ Integer?
- #inspect ⇒ String
-
#minus_with_temporal(other) ⇒ LocalDate
(also: #-)
Extends #- to allow subtracting a TemporalAmount.
-
#plus_with_temporal(other) ⇒ LocalDate
(also: #+)
Extends #+ to allow adding a TemporalAmount.
- #to_instant(context = nil) ⇒ Instant
- #to_local_date(_context = nil) ⇒ LocalDate
- #to_month ⇒ Month
- #to_month_day ⇒ MonthDay
- #to_zoned_date_time(context = nil) ⇒ ZonedDateTime
-
#today? ⇒ true, false
Returns true if the date, converted to the system time zone, is today.
-
#tomorrow? ⇒ true, false
Returns true if the date, converted to the system time zone, is tomorrow.
-
#yesterday? ⇒ true, false
Returns true if the date, converted to the system time zone, is yesterday.
Methods included from OpenHAB::CoreExt::TimePredicates
Methods included from OpenHAB::CoreExt::Ephemeris
#days_until, #holiday, #holiday?, #in_dayset?, #next_holiday, #weekend?
Methods included from OpenHAB::CoreExt::Between
Instance Method Details
#coerce(other) ⇒ Array?
Convert other to Date, if possible.
118 119 120 121 122 123 124 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 118 def coerce(other) logger.trace { "Coercing #{self} as a request from #{other.class}" } return nil unless other.respond_to?(:to_date) return [other.to_date, self] if other.method(:to_date).arity.zero? [other.to_date(self), self] end |
#compare_with_coercion(other) ⇒ Integer?
3 4 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 3 def compare_with_coercion(other) end |
#inspect ⇒ String
128 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 128 alias_method :inspect, :to_s |
#minus_with_temporal(other) ⇒ LocalDate Also known as: -
Extends #- to allow subtracting a TemporalAmount
35 36 37 38 39 40 41 42 43 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 35 def minus_with_temporal(other) if other.instance_of?(java.time.LocalDate) to_local_date - other elsif other.respond_to?(:to_temporal_amount) to_local_date - other.to_temporal_amount else minus_without_temporal(other) end end |
#plus_with_temporal(other) ⇒ LocalDate Also known as: +
Extends #+ to allow adding a TemporalAmount
21 22 23 24 25 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 21 def plus_with_temporal(other) return to_local_date + other.to_temporal_amount if other.respond_to?(:to_temporal_amount) plus_without_temporal(other) end |
#to_instant(context = nil) ⇒ Instant
84 85 86 87 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 84 def to_instant(context = nil) context ||= Instant.now.to_zoned_date_time to_zoned_date_time(context).to_instant end |
#to_local_date(_context = nil) ⇒ LocalDate
48 49 50 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 48 def to_local_date(_context = nil) java.time.LocalDate.of(year, month, day) end |
#to_month ⇒ Month
53 54 55 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 53 def to_month java.time.Month.of(month) end |
#to_month_day ⇒ MonthDay
58 59 60 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 58 def to_month_day java.time.MonthDay.of(month, day) end |
#to_zoned_date_time(context = nil) ⇒ ZonedDateTime
75 76 77 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 75 def to_zoned_date_time(context = nil) to_local_date.to_zoned_date_time(context) end |
#today? ⇒ true, false
Returns true if the date, converted to the system time zone, is today.
This is the equivalent of checking if the current datetime is between midnight and end of the day of the system time zone.
68 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 68 def_delegators :to_zoned_date_time, :yesterday?, :today?, :tomorrow? |
#tomorrow? ⇒ true, false
Returns true if the date, converted to the system time zone, is tomorrow.
68 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 68 def_delegators :to_zoned_date_time, :yesterday?, :today?, :tomorrow? |
#yesterday? ⇒ true, false
Returns true if the date, converted to the system time zone, is yesterday.
68 |
# File 'lib/openhab/core_ext/ruby/date.rb', line 68 def_delegators :to_zoned_date_time, :yesterday?, :today?, :tomorrow? |