durafmt
durafmt copied to clipboard
Limit to adjacent time units
I'd like a way to limit duration strings to the first N adjacent time units.
Existing behaviour:
package main
import (
"fmt"
"time"
"github.com/hako/durafmt"
)
func main() {
duration := durafmt.Parse(2*time.Hour + 58*time.Second).LimitFirstN(2).String()
fmt.Println(duration)
}
This returns 2 hours 58 seconds
.
I don't love this behaviour because the "58 seconds" part is not important and should be truncated. But if I had 58 minutes, that would be important.
Desired behaviour:
duration := durafmt.Parse(2*time.Hour + 58*time.Second).LimitFirstAdjacentN(2).String()
Would return 2 hours
.
duration := durafmt.Parse(2*time.Hour + 15*time.Minute).LimitFirstAdjacentN(2).String()
Would return 2 hours 15 minutes
.