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 javajava.timejava.time.ZonedDateTime
Class Attribute Summary collapse
- .now ⇒ ZonedDateTime readonly
Ephemeris Methods (see CoreExt::Ephemeris) collapse
-
#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 ‘other` to 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_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_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 |