git-lfs/tools/time_tools.go

25 lines
703 B
Go
Raw Normal View History

package tools
import "time"
// IsExpiredAtOrIn returns whether or not the result of calling TimeAtOrIn is
// "expired" within "until" units of time from now.
func IsExpiredAtOrIn(now time.Time, until time.Duration, at time.Time, in time.Duration) (time.Time, bool) {
expiration := TimeAtOrIn(now, at, in)
if expiration.IsZero() {
return expiration, false
}
return expiration, expiration.Before(now.Add(until))
}
// TimeAtOrIn returns either "at", or the "in" duration added to the current
// time. TimeAtOrIn prefers to add a duration rather than return the "at"
// parameter.
func TimeAtOrIn(now, at time.Time, in time.Duration) time.Time {
if in == 0 {
return at
}
return now.Add(in)
}