Class: ReeDatetime::HoursDiff

Inherits:
Object
  • Object
show all
Includes:
Ree::FnDSL
Defined in:
lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/hours_diff.rb

Constant Summary collapse

HOUR_SECONDS =
60.0 * 60

Instance Method Summary collapse

Instance Method Details

#call(start_time, end_time, **opts) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ree_lib/packages/ree_datetime/package/ree_datetime/functions/hours_diff.rb', line 21

def call(start_time, end_time, **opts)
  s_delta = end_time.to_time.to_i - start_time.to_time.to_i
  
  raise ArgumentError, "start_time bigger than end_time" if s_delta < 0

  h_delta = s_delta / HOUR_SECONDS
  opts[:precision] = 0

  round_helper(
    h_delta,
    **slice(opts, [:precision, :round_mode])
  ).to_i
end