Class: OpenHAB::CoreExt::Java::ZonedDateTime
- Inherits:
- 
      Object
      
        - Object
- OpenHAB::CoreExt::Java::ZonedDateTime
 
- Defined in:
- lib/openhab/core_ext/java/zoned_date_time.rb
Overview
Extensions to java.time.ZonedDateTime
Class Attribute Summary collapse
- .now ⇒ ZonedDateTime readonly
Ephemeris Methods collapse
openHAB's built-in holiday definitions are based on bank holidays, so may give some unexpected results. For example, 2022-12-25 is not Christmas in England because it lands on a Sunday that year, so Christmas is considered to be 2022-12-26. See the source for exact definitions. You can always provide your own holiday definitions with holiday_file or holiday_file!.
Forwards ephemeris helper methods to #to_zoned_date_time provided by
the mixed-in class.
- 
  
    
      #days_until(holiday, holiday_file = nil)  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    Calculate the number of days until a specific holiday. 
- 
  
    
      #holiday(holiday_file = nil)  ⇒ Symbol? 
    
    
  
  
  
  
  
  
  
  
  
    Name of the holiday for this date. 
- 
  
    
      #holiday?(holiday_file = nil)  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    Determines if this date is on a holiday. 
- 
  
    
      #in_dayset?(set)  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    Determines if this time is during a specific dayset. 
- 
  
    
      #next_holiday(holiday_file = nil)  ⇒ Symbol 
    
    
  
  
  
  
  
  
  
  
  
    Name of the closest holiday on or after this date. 
- 
  
    
      #weekend?  ⇒ true, false 
    
    
  
  
  
  
  
  
  
  
  
    Determines if this time is during a weekend. 
Class Method Summary collapse
- 
  
    
      .parse(text, formatter = nil)  ⇒ ZonedDateTime 
    
    
  
  
  
  
  
  
  
  
  
    Parses a string into a ZonedDateTime object. 
Instance Method Summary collapse
- #+(other) ⇒ ZonedDateTime
- #-(other) ⇒ Duration, ZonedDateTime
- #<=>(other) ⇒ Integer?
- 
  
    
      #coerce(other)  ⇒ Array? 
    
    
  
  
  
  
  
  
  
  
  
    Converts otherto ZonedDateTime, if possible.
- #to_date ⇒ Date
- 
  
    
      #to_f  ⇒ Float 
    
    
  
  
  
  
  
  
  
  
  
    The number of seconds since the Unix epoch. 
- 
  
    
      #to_i  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    The number of seconds since the Unix epoch. 
- #to_local_date(_context = nil) ⇒ LocalDate
- #to_local_time(_context = nil) ⇒ LocalTime
- #to_month ⇒ Month
- #to_month_day ⇒ MonthDay
- #to_time ⇒ Time
- #to_zoned_date_time(context = nil) ⇒ self
Methods included from Between
Class Attribute Details
Class Method Details
.parse(text, formatter = nil) ⇒ ZonedDateTime
Parses a string into a ZonedDateTime object.
|  | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 21
 | 
Instance Method Details
#+(other) ⇒ ZonedDateTime
| 56 57 58 59 60 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 56 def +(other) return plus(other.seconds) if other.is_a?(Numeric) plus(other) end | 
#-(other) ⇒ Duration, ZonedDateTime
| 43 44 45 46 47 48 49 50 51 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 43 def -(other) if other.respond_to?(:to_zoned_date_time) java.time.Duration.between(other.to_zoned_date_time, self) elsif other.is_a?(Numeric) minus(other.seconds) else minus(other) end end | 
#<=>(other) ⇒ Integer?
| 189 190 191 192 193 194 195 196 197 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 189 def <=>(other) # compare instants, otherwise it will differ by timezone, which we don't want # (use eql? if you care about that) if other.respond_to?(:to_zoned_date_time) to_instant.compare_to(other.to_zoned_date_time(self).to_instant) elsif other.respond_to?(:coerce) && (lhs, rhs = other.coerce(self)) lhs <=> rhs end end | 
#coerce(other) ⇒ Array?
Converts other to OpenHAB::CoreExt::Java::ZonedDateTime, if possible
| 205 206 207 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 205 def coerce(other) [other.to_zoned_date_time(self), self] if other.respond_to?(:to_zoned_date_time) end | 
#days_until(holiday, holiday_file = nil) ⇒ Integer
Calculate the number of days until a specific holiday
| 178 179 180 181 182 183 184 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 178 def days_until(holiday, holiday_file = nil) holiday = holiday.to_s.upcase r = ::Ephemeris.get_days_until(*[self, holiday, holiday_file || DSL.holiday_file].compact) raise ArgumentError, "#{holiday.inspect} isn't a recognized holiday" if r == -1 r end | 
#holiday(holiday_file = nil) ⇒ Symbol?
Name of the holiday for this date.
| 118 119 120 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 118 def holiday(holiday_file = nil) ::Ephemeris.get_bank_holiday_name(*[self, holiday_file || DSL.holiday_file].compact)&.downcase&.to_sym end | 
#holiday?(holiday_file = nil) ⇒ true, false
Determines if this date is on a holiday.
| 128 129 130 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 128 def holiday?(holiday_file = nil) ::Ephemeris.bank_holiday?(*[self, holiday_file || DSL.holiday_file].compact) end | 
#in_dayset?(set) ⇒ true, false
Determines if this time is during a specific dayset
| 163 164 165 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 163 def in_dayset?(set) ::Ephemeris.in_dayset?(set.to_s, self) end | 
#next_holiday(holiday_file = nil) ⇒ Symbol
Name of the closest holiday on or after this date.
| 138 139 140 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 138 def next_holiday(holiday_file = nil) ::Ephemeris.get_next_bank_holiday(*[self, holiday_file || DSL.holiday_file].compact).downcase.to_sym end | 
#to_date ⇒ Date
| 79 80 81 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 79 def to_date Date.new(year, month_value, day_of_month) end | 
#to_f ⇒ Float
The number of seconds since the Unix epoch.
| 74 75 76 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 74 def to_f to_instant.to_epoch_milli / 1000.0 end | 
#to_i ⇒ Integer
The number of seconds since the Unix epoch.
| 66 67 68 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 66 def to_i to_instant.epoch_second end | 
#to_local_date(_context = nil) ⇒ LocalDate
| 84 85 86 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 84 def to_local_date(_context = nil) toLocalDate end | 
#to_local_time(_context = nil) ⇒ LocalTime
| 32 33 34 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 32 def to_local_time(_context = nil) toLocalTime end | 
#to_month ⇒ Month
| 37 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 37 alias_method :to_month, :month | 
#to_month_day ⇒ MonthDay
| 89 90 91 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 89 def to_month_day MonthDay.of(month, day_of_month) end | 
#to_zoned_date_time(context = nil) ⇒ self
| 102 103 104 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 102 def to_zoned_date_time(context = nil) # rubocop:disable Lint/UnusedMethodArgument self end | 
#weekend? ⇒ true, false
Determines if this time is during a weekend.
| 150 151 152 | # File 'lib/openhab/core_ext/java/zoned_date_time.rb', line 150 def weekend? ::Ephemeris.weekend?(self) end | 
 
          