From aee55e07098929e387ac6e2395a01d69922c1745 Mon Sep 17 00:00:00 2001 From: Gregory Rudolph Date: Wed, 14 Jul 2021 10:54:11 -0400 Subject: [PATCH] Add charge time formatting for times greater than an hour --- commands.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/commands.go b/commands.go index 896daff..6feae6b 100644 --- a/commands.go +++ b/commands.go @@ -127,7 +127,9 @@ func chargeStatus(m chat1.MsgSummary) { ret += fmt.Sprintf("\nConnected Cable: %+v", state.ConnChargeCable) ret += fmt.Sprintf("\nCharging State: %+v", state.ChargingState) if state.ChargingState != "Stopped" { - ret += fmt.Sprintf("\nTime to full: %+vmin", state.MinutesToFullCharge) + + chargeTimer := time.Duration(state.MinutesToFullCharge) * time.Minute + ret += fmt.Sprintf("\nTime to full: %+v (%+v)", formatDuration(chargeTimer), time.Now().Add(chargeTimer).Format("15:04")) if state.FastChargerPresent { ret += fmt.Sprintf("\nFast Charger: %+v %+v", state.FastChargerBrand, state.FastChargerType) } @@ -142,7 +144,13 @@ func chargeStatus(m chat1.MsgSummary) { } k.SendMessageByConvID(m.ConvID, ret) } - +func formatDuration(d time.Duration) string { + d = d.Round(time.Minute) + h := d / time.Hour + d -= h * time.Hour + m := d / time.Minute + return fmt.Sprintf("%02d:%02d", h, m) +} func flashLights(m chat1.MsgSummary) { v := getVehicle(m) if v == nil {