瀏覽代碼

~/.bin/working-time.go: Support logging breaks

You can even specify "more" time by using a negative break time...

What's still not supported is registering suspends as breaks.  (Which I
need at home, but not at work...)
Lu Stadler 7 年之前
父節點
當前提交
1a45053cb5
共有 1 個文件被更改,包括 14 次插入2 次删除
  1. 14 2
      .bin/working-time.go

+ 14 - 2
.bin/working-time.go

@ -14,7 +14,8 @@ import (
14 14
15 15
// Day contains information about how long you've worked today.
16 16
type Day struct {
17
	Start time.Time `json:"start"`
17
	Start time.Time     `json:"start"`
18
	Break time.Duration `json:"break,omitempty"`
18 19
}
19 20
20 21
// modes:
@ -33,7 +34,18 @@ func main() {
33 34
		writeDay(dayFile, day)
34 35
	}
35 36
36
	dur := time.Since(day.Start)
37
	if len(os.Args) > 2 && os.Args[1] == "break" {
38
		dur, err := time.ParseDuration(os.Args[2])
39
		if err != nil {
40
			fmt.Fprintln(os.Stderr, err)
41
			os.Exit(1)
42
		}
43
		fmt.Fprintf(os.Stderr, "took a %s break\n", dur)
44
		day.Break += dur
45
		writeDay(dayFile, day)
46
	}
47
48
	dur := time.Since(day.Start) - day.Break
37 49
	hours := dur.Hours()
38 50
	minutes := dur.Minutes() - float64(int(hours)*60)
39 51
	fmt.Printf("%d:%02d\n", int(hours), int(minutes))