mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 15:34:38 +01:00
88 lines
2.1 KiB
Go
88 lines
2.1 KiB
Go
package timeserver
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
var DoOnce_midnight = false
|
|
var DoOnce_t2 = false
|
|
var DoOnce_t = false
|
|
var Fix_midnight = time.Time{}
|
|
var Fix_t2 = time.Time{}
|
|
var Fix_t = time.Time{}
|
|
var Pfixtimer time.Duration
|
|
var Pnewtime = 0
|
|
var yearsFixed = -7
|
|
|
|
func PFadd_time() time.Duration {
|
|
Pnewtime = Pnewtime + 24
|
|
Pfixtimer = time.Duration(Pnewtime)
|
|
return Pfixtimer
|
|
}
|
|
|
|
func Time_static() time.Time {
|
|
if !DoOnce_t {
|
|
DoOnce_t = true
|
|
// Force to 201x
|
|
tFix1 := time.Now()
|
|
tFix2 := tFix1.AddDate(yearsFixed, 0, 0)
|
|
Fix_t = tFix2.In(time.FixedZone("UTC+1", 1*60*60))
|
|
}
|
|
return Fix_t
|
|
}
|
|
|
|
func Tstatic_midnight() time.Time {
|
|
if !DoOnce_midnight {
|
|
DoOnce_midnight = true
|
|
// Force to 201x
|
|
tFix1 := time.Now()
|
|
tFix2 := tFix1.AddDate(yearsFixed, 0, 0)
|
|
var tFix = tFix2.In(time.FixedZone("UTC+1", 1*60*60))
|
|
yearFix, monthFix, dayFix := tFix2.Date()
|
|
Fix_midnight = time.Date(yearFix, monthFix, dayFix, 0, 0, 0, 0, tFix.Location()).Add(time.Hour)
|
|
}
|
|
return Fix_midnight
|
|
}
|
|
|
|
func Time_midnight() time.Time {
|
|
// Force to 201x
|
|
t1 := time.Now()
|
|
t2 := t1.AddDate(yearsFixed, 0, 0)
|
|
var t = t2.In(time.FixedZone("UTC+1", 1*60*60))
|
|
year, month, day := t2.Date()
|
|
midnight := time.Date(year, month, day, 0, 0, 0, 0, t.Location()).Add(time.Hour)
|
|
return midnight
|
|
}
|
|
|
|
func TimeCurrent() time.Time {
|
|
// Force to 201x
|
|
t1 := time.Now()
|
|
t2 := t1.AddDate(yearsFixed, 0, 0)
|
|
var t = t2.In(time.FixedZone("UTC+1", 1*60*60))
|
|
return t
|
|
}
|
|
|
|
func Time_Current_Week_uint8() uint8 {
|
|
beginningOfTheMonth := time.Date(TimeCurrent().Year(), TimeCurrent().Month(), 1, 1, 1, 1, 1, time.UTC)
|
|
_, thisWeek := TimeCurrent().ISOWeek()
|
|
_, beginningWeek := beginningOfTheMonth.ISOWeek()
|
|
|
|
return uint8(1 + thisWeek - beginningWeek)
|
|
}
|
|
|
|
func Time_Current_Week_uint32() uint32 {
|
|
beginningOfTheMonth := time.Date(TimeCurrent().Year(), TimeCurrent().Month(), 1, 1, 1, 1, 1, time.UTC)
|
|
_, thisWeek := TimeCurrent().ISOWeek()
|
|
_, beginningWeek := beginningOfTheMonth.ISOWeek()
|
|
result := 1 + thisWeek - beginningWeek
|
|
return uint32(result)
|
|
}
|
|
|
|
func Detect_Day() bool {
|
|
switch time.Now().Weekday() {
|
|
case time.Wednesday:
|
|
return true
|
|
}
|
|
return false
|
|
}
|