Class: Date

Inherits:
Object
  • Object
show all
Includes:
OpenHAB::CoreExt::Between, OpenHAB::CoreExt::Ephemeris, OpenHAB::CoreExt::TimePredicates
Defined in:
lib/openhab/core_ext/ruby/date.rb

Overview

Extensions to Date

Direct Known Subclasses

DateTime

Instance Method Summary collapse

Methods included from OpenHAB::CoreExt::TimePredicates

#within?

Methods included from OpenHAB::CoreExt::Ephemeris

#days_until, #holiday, #holiday?, #in_dayset?, #next_holiday, #weekend?

Methods included from OpenHAB::CoreExt::Between

#between?

Instance Method Details

#coerce(other) ⇒ Array?

Convert other to Date, if possible.

Parameters:

  • other (#to_date)

Returns:



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?

Extends #<=> to allow comparison with MonthDay

Returns:



3
4
# File 'lib/openhab/core_ext/ruby/date.rb', line 3

def compare_with_coercion(other)
end

#inspectString

Returns:

  • (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

Parameters:

Returns:



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

Parameters:

Returns:



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

Parameters:

Returns:



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

Returns:



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_monthMonth

Returns:



53
54
55
# File 'lib/openhab/core_ext/ruby/date.rb', line 53

def to_month
  java.time.Month.of(month)
end

#to_month_dayMonthDay

Returns:



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

Parameters:

Returns:



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.

Returns:

  • (true, false)


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.

Returns:

  • (true, false)


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.

Returns:

  • (true, false)


68
# File 'lib/openhab/core_ext/ruby/date.rb', line 68

def_delegators :to_zoned_date_time, :yesterday?, :today?, :tomorrow?