Просмотр исходного кода

~/.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
Родитель
Сommit
1a45053cb5
1 измененных файлов с 14 добавлено и 2 удалено
  1. 14 2
      .bin/working-time.go

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

14
14
15
// Day contains information about how long you've worked today.
15
// Day contains information about how long you've worked today.
16
type Day struct {
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
// modes:
21
// modes:
33
		writeDay(dayFile, day)
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
	hours := dur.Hours()
49
	hours := dur.Hours()
38
	minutes := dur.Minutes() - float64(int(hours)*60)
50
	minutes := dur.Minutes() - float64(int(hours)*60)
39
	fmt.Printf("%d:%02d\n", int(hours), int(minutes))
51
	fmt.Printf("%d:%02d\n", int(hours), int(minutes))