51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package trade
|
||
|
||
import "time"
|
||
|
||
// IsTradingTime 判断当前是否为交易时间
|
||
// 交易时间:星期一至星期六早上8点
|
||
func IsTradingTime() bool {
|
||
now := time.Now()
|
||
|
||
// 获取星期几 (Sunday = 0, Monday = 1, ..., Saturday = 6)
|
||
weekday := now.Weekday()
|
||
|
||
// 获取小时数
|
||
hour := now.Hour()
|
||
|
||
// 判断是否为星期一至星期五
|
||
if weekday >= time.Monday && weekday <= time.Friday {
|
||
return true
|
||
} else if weekday == time.Saturday && hour <= 8 { // 星期6并且早上8点前
|
||
return true
|
||
}
|
||
|
||
return false
|
||
}
|
||
|
||
func Int64ToTime(ms int64) time.Time {
|
||
milliseconds := int64(ms) // 2021-10-01 00:00:00 UTC
|
||
|
||
seconds := milliseconds / 1000
|
||
nanos := (milliseconds % 1000) * 1000000
|
||
|
||
return time.Unix(seconds, nanos)
|
||
}
|
||
|
||
// IsCurrentHourInRange 判断当前小时是否在指定的开始和结束小时区间内
|
||
// startHour: 开始小时 (0-23)
|
||
// endHour: 结束小时 (0-23)
|
||
// 返回: 如果在区间内返回true,否则返回false
|
||
func IsCurrentHourInRange(startHour, endHour int) bool {
|
||
now := time.Now()
|
||
currentHour := now.Hour()
|
||
|
||
// 处理同一天的情况
|
||
if startHour <= endHour {
|
||
return currentHour >= startHour && currentHour < endHour
|
||
}
|
||
|
||
// 处理跨天的情况(例如 22:00 - 06:00)
|
||
return currentHour >= startHour || currentHour < endHour
|
||
}
|