From: "Eric I." Date: 2008-08-26T01:30:50+09:00 Subject: Re: Uptime Since... (#174) My solution: ==== SecsPerMinute = 60 SecsPerHour = 60*SecsPerMinute SecsPerDay = 24*SecsPerHour match = /up (\d+) days, (\d+):(\d+),/.match %x{uptime} # extract data from reg. exp. and convert to integers days, hours, minutes = *((1..3).map { |index| match[index].to_i }) now = Time.now now -= now.sec # normalize to 0 seconds into the current minute boot_time = now - days*SecsPerDay - hours*SecsPerHour - minutes*SecsPerMinute boot_time_s = boot_time.strftime("%a %b %e %l:%M %p") puts "Machine last booted: #{boot_time_s} (+/- 1 minute)." ==== Eric ==== On-site, hands-on Ruby and Ruby on Rails training is available from http://LearnRuby.com !