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:
1 2 3 4 | 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:
1 | alias wt='~/tools/workingtime.rb' |
So finally the script looks like this:
1 2 3 4 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 | #!/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.
Information about Data protection