HiveBrain v1.2.0
Get Started
← Back to all entries
patterngoMinor

Checking if a value is within a time range

Submitted by: @import:stackexchange-codereview··
0
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.