diff --git a/timeutil/trans.go b/timeutil/trans.go index 7ae346c..919ee9d 100644 --- a/timeutil/trans.go +++ b/timeutil/trans.go @@ -3,6 +3,7 @@ package util import ( "time" + "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/timestamppb" "github.com/tx7do/go-utils/trans" @@ -132,3 +133,19 @@ func TimeToTimestamppb(tm *time.Time) *timestamppb.Timestamp { } return nil } + +func FloatToDurationpb(duration *float64, timePrecision time.Duration) *durationpb.Duration { + if duration == nil { + return nil + } + return durationpb.New(time.Duration(*duration) * timePrecision) +} + +func DurationpbToFloat(duration *durationpb.Duration, timePrecision time.Duration) *float64 { + if duration == nil { + return nil + } + seconds := duration.AsDuration().Seconds() + secondsWithPrecision := seconds / timePrecision.Seconds() + return &secondsWithPrecision +}