mirror of
https://github.com/sstent/go-garth-cli.git
synced 2026-01-26 09:01:58 +00:00
sync
This commit is contained in:
70
python-garmin-connect/connect/tools.go
Normal file
70
python-garmin-connect/connect/tools.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
func formatDate(t time.Time) string {
|
||||
if t == (time.Time{}) {
|
||||
return "-"
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%04d-%02d-%02d", t.Year(), t.Month(), t.Day())
|
||||
}
|
||||
|
||||
func stringer(value interface{}) string {
|
||||
stringer, ok := value.(fmt.Stringer)
|
||||
if ok {
|
||||
return stringer.String()
|
||||
}
|
||||
|
||||
str := ""
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
str = v
|
||||
case int, int64:
|
||||
str = fmt.Sprintf("%d", v)
|
||||
case float64:
|
||||
str = strconv.FormatFloat(v, 'f', 1, 64)
|
||||
case bool:
|
||||
if v {
|
||||
str = gotIt
|
||||
}
|
||||
default:
|
||||
panic(fmt.Sprintf("no idea what to do about %T:%v", value, value))
|
||||
}
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
func sliceStringer(values []interface{}) []string {
|
||||
ret := make([]string, len(values))
|
||||
|
||||
for i, value := range values {
|
||||
ret[i] = stringer(value)
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func hoursAndMinutes(dur time.Duration) string {
|
||||
if dur == 0 {
|
||||
return "-"
|
||||
}
|
||||
|
||||
if dur < 60*time.Minute {
|
||||
m := dur.Truncate(time.Minute)
|
||||
|
||||
return fmt.Sprintf("%dm", m/time.Minute)
|
||||
}
|
||||
|
||||
h := dur.Truncate(time.Hour)
|
||||
m := (dur - h).Truncate(time.Minute)
|
||||
|
||||
h /= time.Hour
|
||||
m /= time.Minute
|
||||
|
||||
return fmt.Sprintf("%dh%dm", h, m)
|
||||
}
|
||||
Reference in New Issue
Block a user