diff options
Diffstat (limited to 'zeitgeist.go')
-rw-r--r-- | zeitgeist.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/zeitgeist.go b/zeitgeist.go index 2e99d91..a44f25c 100644 --- a/zeitgeist.go +++ b/zeitgeist.go @@ -644,6 +644,27 @@ var funcs = template.FuncMap{ d, e := time.Parse(time.DateOnly, in) return Date(d), e }, + "Percent": func(a, b Amount) float64 { + return float64(a/b) * 100 + }, + "AsDay": func(a Amount) string { + return a.AsDay() + }, + "AsMonth": func(a Amount) string { + return a.AsMonth() + }, + "Unit": func(unit string, a Amount) (string, error) { + switch unit { + case "M", "m": + return a.AsMonth(), nil + case "D", "d": + return a.AsDay(), nil + case "H", "h": + return a.String(), nil + default: + return "", fmt.Errorf("unknown unit %q", unit) + } + }, } func (p *Project) printReport(name string) { @@ -960,6 +981,10 @@ func (t *Totals) Open() Amount { return d } +func (t *Totals) Difference() Amount { + return t.Planned - t.Done +} + func (t *Totals) Percent() float64 { if t.Done < 1 && t.Planned < 1 { return 0 |