2 Star 0 Fork 4

王布衣/exchange

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
holiday.go 1.33 KB
Copy Edit Raw Blame History
王布衣 authored 2025-09-14 21:58 +08:00 . 更新依赖库版本
package exchange
import (
"fmt"
"regexp"
"strings"
"gitee.com/quant1x/gox/api"
"gitee.com/quant1x/gox/http"
"gitee.com/quant1x/gox/logger"
"gitee.com/quant1x/gox/text/encoding"
)
const (
urlHoliday = "https://www.tdx.com.cn/url/holiday/"
)
// FinancialHoliday 金融假日
type FinancialHoliday struct {
Date string `name:"日期" array:"0"`
Holiday string `name:"节日" array:"1"`
Country string `name:"地区" array:"2"`
Exchange string `name:"交易所" array:"3"`
}
var (
holidayPattern = `<textarea id="data" style="display:none;">([\s\w\W]+)</textarea>`
holidayRegexp = regexp.MustCompile(holidayPattern)
)
var (
mapFinancialHolidays = map[string]FinancialHoliday{}
)
func getHolidayFromTdx() {
data, err := http.Get(urlHoliday)
if err != nil {
logger.Error(err)
return
}
text := api.Bytes2String(data)
encoder := encoding.NewDecoder("gbk")
text = encoder.ConvertString(text)
arr := holidayRegexp.FindStringSubmatch(text)
if len(arr) != 2 {
return
}
textHolidays := arr[1]
arr = strings.Split(textHolidays, "\n")
for _, v := range arr {
v := strings.TrimSpace(v)
if len(v) == 0 {
continue
}
line := strings.Split(v, `|`)
if len(line) < 4 {
continue
}
var fh FinancialHoliday
err = api.Convert(line, &fh)
fmt.Println(err)
fh.Date = FixTradeDate(fh.Date)
fmt.Println(fh)
break
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/quant1x/exchange.git
git@gitee.com:quant1x/exchange.git
quant1x
exchange
exchange
v0.8.11

Search