mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 23:44:52 +01:00
49 lines
1.4 KiB
Go
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
|
|
}
|