Files
Erupe/server/channelserver/sys_timefix.go
2022-07-29 03:25:23 +10:00

49 lines
1.4 KiB
Go

package channelserver
import (
"fmt"
"time"
)
var (
Offset = 9
YearAdjust = -7
MonthAdjust = 0
DayAdjust = 0
)
var (
TimeStatic = time.Time{}
)
func Time_Current() time.Time {
baseTime := time.Now().In(time.FixedZone(fmt.Sprintf("UTC+%d", Offset), Offset*60*60))
return baseTime
}
func Time_Current_Adjusted() time.Time {
baseTime := time.Now().In(time.FixedZone(fmt.Sprintf("UTC+%d", Offset), Offset*60*60)).AddDate(YearAdjust, MonthAdjust, DayAdjust)
return time.Date(baseTime.Year(), baseTime.Month(), baseTime.Day(), baseTime.Hour(), baseTime.Minute(), baseTime.Second(), baseTime.Nanosecond(), baseTime.Location())
}
func Time_Current_Midnight() time.Time {
baseTime := time.Now().In(time.FixedZone(fmt.Sprintf("UTC+%d", Offset), Offset*60*60)).AddDate(YearAdjust, MonthAdjust, DayAdjust)
return time.Date(baseTime.Year(), baseTime.Month(), baseTime.Day(), 0, 0, 0, 0, baseTime.Location())
}
func Time_Current_Week_uint8() uint8 {
baseTime := time.Now().In(time.FixedZone(fmt.Sprintf("UTC+%d", Offset), Offset*60*60)).AddDate(YearAdjust, MonthAdjust, DayAdjust)
_, thisWeek := baseTime.ISOWeek()
_, beginningOfTheMonth := time.Date(baseTime.Year(), baseTime.Month(), 1, 0, 0, 0, 0, baseTime.Location()).ISOWeek()
return uint8(1 + thisWeek - beginningOfTheMonth)
}
func Time_static() time.Time {
if TimeStatic.IsZero() {
TimeStatic = Time_Current_Adjusted()
}
return TimeStatic
}