patterngoMinor
Checking if a value is within a time range
Viewed 0 times
rangecheckingtimevaluewithin
Problem
How can I improve the style to avoid so many
float64()s?func IsInTimeRange(tvalue int32,timeout int){
t := time.Now().Unix()
return int(math.Abs(float64(t)-float64(tvalue))) < timeout
}Solution
For example,
package main
import (
"fmt"
"time"
)
func IsInTimeRange(tvalue int32, timeout int) bool {
delta := int(time.Now().Unix() - int64(tvalue))
return -timeout < delta && delta < timeout
}
func main() {}tvalue int32 will overflow in year 2038, change it to tvalue int64.package main
import "time"
func IsInTimeRange(tvalue int64, timeout int) bool {
delta := int(time.Now().Unix() - tvalue)
return -timeout < delta && delta < timeout
}
func main() {}Code Snippets
package main
import (
"fmt"
"time"
)
func IsInTimeRange(tvalue int32, timeout int) bool {
delta := int(time.Now().Unix() - int64(tvalue))
return -timeout < delta && delta < timeout
}
func main() {}package main
import "time"
func IsInTimeRange(tvalue int64, timeout int) bool {
delta := int(time.Now().Unix() - tvalue)
return -timeout < delta && delta < timeout
}
func main() {}Context
StackExchange Code Review Q#111641, answer score: 2
Revisions (0)
No revisions yet.