5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/fuzzytime.rb', line 5
def self.fuzzy_time(t = Time.now)
min = t.min
hour = t.hour
case min
when 0
when 1..30
rel = "past"
min = min
when 31..59
rel = "til"
min = 60 - min
hour = (hour + 1) % 24
end
min = "quarter" if min == 15
min = "half" if min == 30
case hour
when 0
hour = "midnight"
when 12
hour = "noon"
else
hour = hour % 12
suffix = t.min.zero? && hour.is_a?(Integer) ? "o'clock" : ""
min = nil if t.min.zero?
end
"#{min} #{rel} #{hour} #{suffix}".strip
end
|