最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶(hù)

 更新時(shí)間:2023年01月31日 16:17:08   作者:壯壯熊  
這篇文章主要為大家介紹了Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶(hù)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1、場(chǎng)景

想象下以下場(chǎng)景,嘿嘿...!

一個(gè)iphone用戶(hù),鬧鐘是可以按節(jié)假日不響的! 每日新聞機(jī)器人,節(jié)假日是可以不打擾我的! 我的業(yè)務(wù),節(jié)假日是可以...

2、思路

要實(shí)現(xiàn)識(shí)別節(jié)假日,大概有兩種方式:

1、自己收集國(guó)家法定節(jié)假日數(shù)據(jù),離線(xiàn)存儲(chǔ)

優(yōu)勢(shì):離線(xiàn)簡(jiǎn)單

劣勢(shì):新一年要去更新,容易忘記,麻煩

2、調(diào)用第三方接口數(shù)據(jù)

優(yōu)勢(shì):不需要我們操心數(shù)據(jù)本身

劣勢(shì):有次數(shù)限制

本次介紹調(diào)用第三方接口的方式,用golang實(shí)現(xiàn)整個(gè)過(guò)程。

3、接口分析

分析了網(wǎng)上現(xiàn)有接口,發(fā)現(xiàn)juhe的api接口會(huì)比較合適

當(dāng)然也可以選擇您認(rèn)為合適的

分析:

請(qǐng)求詳情:

請(qǐng)求地址:http://apis.juhe.cn/fapig/calendar/day
請(qǐng)求參數(shù):date=2023-01-16&detail=&key=c6ff98d3**\*\***be4a35b2
請(qǐng)求方式:GET

Header:
   Content-Type:application/x-www-form-urlencoded

返回內(nèi)容:

{
  "reason":"success",
  "result":{
    "date":"2023-01-16",
    "week":"星期一",
    "statusDesc":"工作日",
    "status":null
  },
  "error_code":0
}

復(fù)制

4、golang實(shí)現(xiàn)

4.1、json2go小工具

這里我們利用下json轉(zhuǎn)golang struct的小工具,把接口返回的json轉(zhuǎn)成golang的代碼

http://tools.jb51.net/code/json2gostruct

4.2、代碼實(shí)現(xiàn)

package main
import (
  "encoding/json"
  "fmt"
)
func main() {
  // 當(dāng)前日期
  todayStr := time.Unix(time.Now().Unix(), 0).Format("2006-01-02")
  key := "xxxxxxx" //獲取,節(jié)假日信息查詢(xún)接口 https://dashboard.juhe.cn/data/index/my
  // 判斷當(dāng)前是否是節(jié)假日(周末也算節(jié)假日,除非是節(jié)假日后補(bǔ)班情況),節(jié)假日跳過(guò)
  calendarJh := new(util.CalendarJH)
  isHolidays := calendarJh.IsHolidays(&todayStr, &key)
  if isHolidays {
    fmt.Printf("%v 是節(jié)假日,今天跳過(guò)!\n", todayStr)
    return
  }
}
// IsHolidays 是否是節(jié)假日(周末也算節(jié)假日,除非是節(jié)假日后補(bǔ)班情況)
func (calendarJH *CalendarJH) IsHolidays(date *string, key *string) bool {
  // 默認(rèn)返回是節(jié)假日
  result := true
  // 調(diào)用juhe api 接口
  juheAPI := "https://apis.juhe.cn/fapig/calendar/day?date=" + *date + "&detail=1&key=" + *key
  body, _ := HttpGetInfo(&juheAPI)
  err := json.Unmarshal(*body, calendarJH)
  if err != nil {
    fmt.Printf("調(diào)用juhe接口出錯(cuò),默認(rèn)返回是節(jié)假日,錯(cuò)誤原因:%v \n", err)
    return result
  }
  if calendarJH.Result.Status == "1" {
    result = true
    return result
  } else if calendarJH.Result.Status == "2" {
    result = false
    return result
  } else if calendarJH.Result.Status == nil {
    if calendarJH.Result.StatusDesc == "周末" {
      result = true
      return result
    } else if calendarJH.Result.StatusDesc == "工作日" {
      result = false
      return result
    }
  }
  return result
}
// CalendarJH 日歷數(shù)據(jù),來(lái)自juhe
type CalendarJH struct {
  Reason    string `json:"reason"`
  Result    Result `json:"result"`
  ErrorCode int    `json:"error_code"`
}
type Result struct {
  Date       string      `json:"date"`
  Week       string      `json:"week"`
  StatusDesc string      `json:"statusDesc"` //狀態(tài)描述,節(jié)假日/工作日/周末。1.當(dāng)status為1時(shí),表示節(jié)假日;2.當(dāng)status為2時(shí),表示工作日;3.當(dāng)status為null時(shí),如果week為周六或者周日,表示周末,否則表示工作日
  Status     interface{} `json:"status"`     //當(dāng)天狀態(tài)標(biāo)識(shí),1:節(jié)假日,2:工作日,null:周末或工作日(可根據(jù)week進(jìn)行判斷,也可以直接根據(jù)statusDesc進(jìn)行判斷)
}

以上就是詳解Golang如何實(shí)現(xiàn)節(jié)假日不打擾用戶(hù)的詳細(xì)內(nèi)容,更多關(guān)于Golang節(jié)假日不打擾用戶(hù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換實(shí)例代碼

    golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換實(shí)例代碼

    說(shuō)實(shí)話(huà),golang的時(shí)間轉(zhuǎn)化還是很麻煩的,最起碼比php麻煩很多,下面這篇文章主要給大家介紹了關(guān)于golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Go語(yǔ)言sync.Cond使用方法詳解

    Go語(yǔ)言sync.Cond使用方法詳解

    Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)中還包含條件變量 sync.Cond,它可以讓一組 Goroutine 都在滿(mǎn)足特定條件時(shí)被喚醒,每一個(gè)sync.Cond結(jié)構(gòu)體在初始化時(shí)都需要傳入一個(gè)互斥鎖,接下來(lái)我們將通過(guò)文中例子了解它的使用方法,感興趣的同學(xué)跟著小編一起來(lái)看看吧
    2023-07-07
  • Go 日志封裝實(shí)戰(zhàn)示例詳解

    Go 日志封裝實(shí)戰(zhàn)示例詳解

    這篇文章主要為大家介紹了Go 日志封裝實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • go for range遍歷二維數(shù)組的示例

    go for range遍歷二維數(shù)組的示例

    今天小編就為大家分享一篇關(guān)于go for range遍歷二維數(shù)組的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • golang channel讀取數(shù)據(jù)的幾種情況

    golang channel讀取數(shù)據(jù)的幾種情況

    本文主要介紹了golang channel讀取數(shù)據(jù)的幾種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Golang中runtime的使用詳解

    Golang中runtime的使用詳解

    這篇文章主要介紹了Golang中runtime的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Go雪花算法的作用領(lǐng)域及實(shí)現(xiàn)方法示例

    Go雪花算法的作用領(lǐng)域及實(shí)現(xiàn)方法示例

    這篇文章主要為大家介紹了Go雪花算法的作用領(lǐng)域及實(shí)現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • golang中包無(wú)法引入問(wèn)題解決

    golang中包無(wú)法引入問(wèn)題解決

    本文主要介紹了golang中包無(wú)法引入問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • go redis之redigo的使用

    go redis之redigo的使用

    本文主要介紹了go redis之redigo的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 詳解Go語(yǔ)言中的內(nèi)存對(duì)齊

    詳解Go語(yǔ)言中的內(nèi)存對(duì)齊

    前面我們學(xué)習(xí)了Go語(yǔ)言空結(jié)構(gòu)體詳解,最近又在看unsafe包的知識(shí),在查閱相關(guān)資料時(shí)不免會(huì)看到內(nèi)存對(duì)齊相關(guān)的內(nèi)容。雖然不會(huì),但可以學(xué)呀,那么這篇文章,我們就一起來(lái)看下什么是內(nèi)存對(duì)齊吧
    2022-10-10

最新評(píng)論

信阳市| 陕西省| 大同县| 鸡东县| 慈利县| 汽车| 吉安县| 固镇县| 湖北省| 平阳县| 偏关县| 丁青县| 广东省| 微山县| 莱西市| 图片| 沙坪坝区| 秭归县| 读书| 巫溪县| 静安区| 左贡县| 枞阳县| 黔南| 武穴市| 吉木萨尔县| 双牌县| 泊头市| 新田县| 镇巴县| 苏州市| 南岸区| 中西区| 通化市| 宜昌市| 庆阳市| 西乌珠穆沁旗| 邮箱| 林甸县| 颍上县| 进贤县|