Files
origin/util/Timer.go
2019-04-29 15:32:40 +08:00

54 lines
977 B
Go

package util
import "time"
type Timer struct {
lasttime int64
timeinterval int64
}
func (slf *Timer) SetupTimer(ms int32) {
slf.lasttime = time.Now().UnixNano()
slf.timeinterval = int64(ms) * 1e6
}
func (slf *Timer) SetupTimerOnlyInterval(ms int32) {
slf.timeinterval = int64(ms) * 1e6
}
func (slf *Timer) SetupTimerTheHour(hour int32) {
timeNow := time.Now()
nt := timeNow.Truncate(time.Hour * 1)
slf.lasttime = nt.UnixNano()
slf.timeinterval = int64(hour) * 3600 * 1e9
}
func (slf *Timer) CheckTimeOut() bool {
now := time.Now().UnixNano()
if now-slf.lasttime > slf.timeinterval {
slf.lasttime = now
return true
}
return false
}
func (slf *Timer) CheckTimeOutHour() bool {
now := time.Now().UnixNano()
if now-slf.lasttime > slf.timeinterval {
timeNow := time.Now()
nt := timeNow.Truncate(time.Hour * 1)
slf.lasttime = nt.UnixNano()
return true
}
return false
}
func (slf *Timer) Reset() {
slf.lasttime = time.Now().UnixNano()
}