123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package public
- import (
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "sync"
- "time"
- util "app.yhyue.com/moapp/jybase/common"
- )
- type Holidy struct {
- isHolidy bool
- date string
- }
- const (
- URL = "http://apis.baidu.com/xiaogg/holiday/holiday?d=%s"
- KEY = "188da6713cec8bf6287ee14e4ddcee26"
- )
- var Now = Holidy{}
- var Lock = &sync.Mutex{}
- func CheckNowHoliday() bool {
- _now := time.Now().Format("20060102")
- if Now.date == _now {
- return Now.isHolidy
- } else {
- return GetNowHoliday(_now)
- }
- }
- func GetNowHoliday(_now string) bool {
- b1, b2 := GetHolidy(_now)
- if b2 {
- Lock.Lock()
- Now.date = _now
- Now.isHolidy = b1
- Lock.Unlock()
- }
- return b1
- }
- func GetHolidy(yyyymmdd string) (bool, bool) {
- m, b := GetUrl(yyyymmdd)
- if b {
- if m == "1" || m == "2" {
- return true, true
- }
- }
- return false, b
- }
- func GetUrl(date string) (m string, res bool) {
- defer util.Catch()
- req, err := http.NewRequest("GET", fmt.Sprintf(URL, date), nil)
- if err != nil {
- return
- }
- req.Header.Add("apikey", KEY)
- resp, err := http.DefaultClient.Do(req)
- defer resp.Body.Close()
- if err == nil {
- bs, err := ioutil.ReadAll(resp.Body)
- if len(bs) == 1 {
- m = string(bs)
- }
- if err != nil {
- log.Println("err:", err)
- } else {
- res = true
- }
- }
- return
- }
|