Github地址
前言
最近有需要研究阴历和阳历互相转换的问题。因此找到两个库carbon和solarlunar
但是感觉计算出来的总是不太放心,而且也会占用计算资源。我的想法是通过接口获取现成的阴历和阳历数据,存到本地数据库,这样查询的时候一步到位。
方案
我通过百度搜索
万年历
,抓取网页请求得到百度的一个接口正好可以获取万年历的信息,还是挺全面的。
因此我写代码实现了将百度万年历的数据获取,然后存入数据库的代码。
下面是calendar.go
的代码,主要使用gorm
创建表,以及写入拉取的数据。
package calendar
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"net/url"
"strconv"
"strings"
"sync"
"time"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
"gorm.io/driver/mysql"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
type (
PerpetualCalendar struct {
//Status string `json:"status"`
//T string `json:"t"`
//SetCacheTime string `json:"set_cache_time"`
Data []PerpetualCalendarData `json:"data"`
}
PerpetualCalendarData struct {
//ExtendedLocation string `json:"ExtendedLocation"`
//OriginQuery string `json:"OriginQuery"`
//SiteID int `json:"SiteId"`
//StdStg int `json:"StdStg"`
//StdStl int `json:"StdStl"`
//SelectTime int `json:"_select_time"`
//UpdateTime string `json:"_update_time"`