Class: Time

Inherits:
Object
  • Object
show all
Defined in:
lib/overtime.rb

Constant Summary collapse

CONST_DAY_HOURS =
24

Class Method Summary collapse

Class Method Details

.parse(str, now = self.now) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/overtime.rb', line 8

def parse(str, now=self.now)
  comp = !block_given?
  d = Date._parse(str)
  if !d[:year] && !d[:mon] && !d[:mday] && !d[:hour] && !d[:min] && !d[:sec] && !d[:sec_fraction]
    raise ArgumentError, "no time information in #{date.inspect}"
  end

  year = d[:year]
  year = yield(year) if year && !comp

  if d[:hour]
    (add_day, mod_hour) = (d[:hour]).divmod(CONST_DAY_HOURS)
  else
    (add_day, mod_hour) = [0, nil]
  end

  make_time(year, d[:mon], d[:mday], mod_hour, d[:min], d[:sec], d[:sec_fraction], d[:zone], now) + (add_day * 24 * 60 * 60)
end