80 lines
1.1 KiB
Go
80 lines
1.1 KiB
Go
/**
|
|
* @Author: jager
|
|
* @Email: lhj168os@gmail.com
|
|
* @File: date
|
|
* @Date: 2021/11/30 16:28
|
|
* @package: stock
|
|
* @Version: x.x.x
|
|
*
|
|
* @Description: xxx
|
|
*
|
|
*/
|
|
|
|
package stock
|
|
|
|
import (
|
|
"github.com/jageros/hawox/sdk/tianapi"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
date string
|
|
isSellDay bool
|
|
)
|
|
|
|
func IsSellDay(t time.Time) bool {
|
|
today := t.Format("2006-01-02")
|
|
if date != today {
|
|
date = today
|
|
isSellDay = false
|
|
// 判断是否交易日
|
|
ty, err := tianapi.CheckDateType(today)
|
|
if err != nil {
|
|
w := t.Weekday()
|
|
if w >= 1 && w <= 5 {
|
|
isSellDay = true
|
|
}
|
|
} else if ty.Type() == tianapi.WorkingDay {
|
|
isSellDay = true
|
|
}
|
|
}
|
|
|
|
return isSellDay
|
|
}
|
|
|
|
func HasClose(t time.Time) bool {
|
|
return t.Hour() >= 15
|
|
}
|
|
|
|
func HasOpen(t time.Time) bool {
|
|
h, m := t.Hour(), t.Minute()
|
|
return h > 9 || h == 9 && m >= 30
|
|
}
|
|
|
|
func IsPause(t time.Time) bool {
|
|
h, m := t.Hour(), t.Minute()
|
|
|
|
if h == 12 || (h == 11 && m >= 30) {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func IsOnSell() bool {
|
|
now := time.Now()
|
|
if !IsSellDay(now) {
|
|
return false
|
|
}
|
|
|
|
if IsPause(now) {
|
|
return false
|
|
}
|
|
|
|
if HasClose(now) {
|
|
return false
|
|
}
|
|
|
|
return HasOpen(now)
|
|
}
|