From d7b94b978c60ad6194debac9a899b670c1b6047c Mon Sep 17 00:00:00 2001 From: Sacha Ligthert Date: Thu, 14 Dec 2023 21:38:00 +0100 Subject: [PATCH] Add support for flags. Disable or enable day or year renders. Provide a way to add a third and custom epoch. --- tp.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/tp.go b/tp.go index aedb6ce..15b5d9d 100644 --- a/tp.go +++ b/tp.go @@ -1,6 +1,7 @@ package main import ( + "flag" "fmt" "log" "time" @@ -80,6 +81,25 @@ func renderDay() string { return render } +func renderCustom(t1 time.Time, t2 time.Time) string { + + var ct time.Time + var offset int + ct, offset = getCurrentTime() + + seconds := t2.Sub(t1).Seconds() + tdiff := ct.Sub(t1).Seconds() + + percentage := calcPercentageFloat64(seconds, tdiff+float64(offset)) + + var render string + render = renderPercentage(percentage) + render = render + fmt.Sprintf(" %.7f%%", percentage) + + return render + +} + func getCurrentTime() (time.Time, int) { // Declarations var offset int @@ -144,6 +164,38 @@ func startYear(year, month, day int) time.Time { } func main() { - fmt.Println(renderDay()) - fmt.Println(renderYear()) + + var dayFlag = flag.Bool("day", true, "Display progress of the day.") + var yearFlag = flag.Bool("year", true, "Display progress of this year.") + + var customFlag = flag.Bool("custom", false, "Display a custom range") + var customStart = flag.String("custom-start", "", "Start of the custom range") + var customStop = flag.String("custom-stop", "", "Start of the custom range") + + flag.Parse() + + if *dayFlag { + fmt.Println(renderDay()) + } + + if *yearFlag { + fmt.Println(renderYear()) + } + + if *customFlag { + + bt, err := time.Parse(time.RFC3339, *customStart) + if err != nil { + log.Fatalln("Error parsing start time: ", err) + } + + pa, err := time.Parse(time.RFC3339, *customStop) + if err != nil { + log.Fatalln("Error parsing stop time: ", err) + } + + fmt.Println(renderCustom(bt, pa)) + + } + }