For measure working time on windows I wrote a little script. It calculates the time since the last login. The output of the script looks like this:
Login: 10:10 Now: 18:13 ====================== Working time: 8 h 3 m
The script is written in Ruby and runs under cygwin. I saved the script in a folder tools in my homedir and have the following alias in my .bashrc:
-
alias wt='~/tools/workingtime.rb'
So finally the script looks like this:
-
#!/usr/bin/ruby
-
HOURS_PER_DAY = 24
-
MINUTES_PER_HOUR = 60
-
SEC_PER_MINUTE = 60
-
times = []
-
-
#get times from windows systeminfo
-
#Systembetriebszeit: 0 Tage, 0 Stunden, 10 Minuten, 0 Sekunden
-
uptime_string = `systeminfo | grep Systembetriebszeit`
-
uptime_string.slice!(0..28)
-
time_strings = uptime_string.split(',')
-
time_strings.each do |s|
-
times < < s.gsub(/[A-Za-z\s]+/, '')
-
end
-
-
#do some calculation
-
seconds = times[0].to_i * HOURS_PER_DAY * MINUTES_PER_HOUR * SEC_PER_MINUTE
-
seconds = seconds + times[1].to_i * MINUTES_PER_HOUR * SEC_PER_MINUTE
-
seconds = seconds + times[2].to_i * SEC_PER_MINUTE
-
seconds = seconds + times[3].to_i
-
now = Time.now
-
login = now - seconds
-
if (times[0].to_i != 0)
-
times[1] = times[1].to_i + times[0] * HOURS_PER_DAY
-
end
-
-
#print it
-
puts login.strftime("Login: %H:%M")
-
puts now.strftime("Now: %H:%M")
-
puts "======================"
-
puts "Working time: #{times[1].to_i} h #{times[2].to_i} m"
Known issues:
The script is based on the windows command systeminfo. Systeminfo returns values in the language of the operating system. So this works only with a german windows. Replace “Systembetriebszeit” with whatever your systeminfo command returns for the uptime.
Update:
Workingtime.rb moves to github. Follow the installation instructions there.