code_junkie

Date and time calculations to track time using command line in Unix/Linux

Nov 13th, 2011
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. echo "$(date) : Start" >>worktime.txt
  2.  
  3. echo "$(date) : End" >>worktime.txt
  4.  
  5. kent@rat:~/work$ cat worktime.txt
  6. Fri Jan 2 19:17:13 CET 2009 : Start
  7. Fri Jan 2 19:47:18 CET 2009 : End
  8. Fri Jan 2 21:41:07 CET 2009 : Start
  9. Fri Jan 2 22:39:24 CET 2009 : End
  10.  
  11. #!/bin/bash
  12.  
  13. total=0
  14. while read LINE; do
  15. d1=$(echo $LINE |cut -c1-28);
  16. t1=$(date -d "$d1" +%s);
  17. read LINE
  18. d2=$(echo $LINE |cut -c1-28);
  19. t2=$(date -d "$d2" +%s);
  20. total=$(($total+$t2-$t1));
  21. done
  22. echo $(($total/(60*60))) hours
  23.  
  24. echo $(date +%s) : Start
  25.  
  26. #!/bin/bash
  27.  
  28. total=0
  29. while read LINE; do
  30. t1=$(echo $LINE |cut -d' ' -f1)
  31. read LINE
  32. t2=$(echo $LINE |cut -d' ' -f1)
  33. total=$(($total+$t2-$t1))
  34. done
  35. echo "$(echo "scale=2; $total/(60*60)" |bc -l)" hours
  36.  
  37. BEGIN {
  38. total_secs = 0
  39. FS = OFS = ":"
  40. }
  41.  
  42. function snip_it() {
  43. $NF = ""; $0 = substr($0, 1, length($0)-1);
  44. }
  45.  
  46. !(NR % 2) {
  47. snip_it();
  48. ("date -d "" $0 "" +%s") | getline start_secs
  49. }
  50.  
  51. NR % 2 {
  52. snip_it();
  53. ("date -d "" $0 "" +%s") | getline end_secs
  54. total_secs += (end_secs - start_secs)
  55. }
  56.  
  57. END {
  58. print "Total work time of " total_secs " seconds"
  59. }
Add Comment
Please, Sign In to add comment