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

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

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

1、場景

想象下以下場景,嘿嘿...!

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

2、思路

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

1、自己收集國家法定節(jié)假日數(shù)據(jù),離線存儲

優(yōu)勢:離線簡單

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

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

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

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

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

3、接口分析

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

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

分析:

請求詳情:

請求地址:http://apis.juhe.cn/fapig/calendar/day
請求參數(shù):date=2023-01-16&detail=&key=c6ff98d3**\*\***be4a35b2
請求方式: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實現(xiàn)

4.1、json2go小工具

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

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

4.2、代碼實現(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é)假日信息查詢接口 https://dashboard.juhe.cn/data/index/my
  // 判斷當(dāng)前是否是節(jié)假日(周末也算節(jié)假日,除非是節(jié)假日后補(bǔ)班情況),節(jié)假日跳過
  calendarJh := new(util.CalendarJH)
  isHolidays := calendarJh.IsHolidays(&todayStr, &key)
  if isHolidays {
    fmt.Printf("%v 是節(jié)假日,今天跳過!\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接口出錯,默認(rèn)返回是節(jié)假日,錯誤原因:%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ù),來自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時,表示節(jié)假日;2.當(dāng)status為2時,表示工作日;3.當(dāng)status為null時,如果week為周六或者周日,表示周末,否則表示工作日
  Status     interface{} `json:"status"`     //當(dāng)天狀態(tài)標(biāo)識,1:節(jié)假日,2:工作日,null:周末或工作日(可根據(jù)week進(jìn)行判斷,也可以直接根據(jù)statusDesc進(jìn)行判斷)
}

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

相關(guān)文章

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

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

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

    Go語言sync.Cond使用方法詳解

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

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

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

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

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

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

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

    Golang中runtime的使用詳解

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

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

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

    golang中包無法引入問題解決

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

    go redis之redigo的使用

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

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

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

最新評論

建阳市| 张北县| 郧西县| 封丘县| 平泉县| 江孜县| 石景山区| 天气| 五河县| 顺义区| 望奎县| 洪洞县| 阿拉善左旗| 沙河市| 岑巩县| 安平县| 横山县| 合川市| 锦屏县| 丽江市| 四会市| 娄底市| 长汀县| 白银市| 龙陵县| 江西省| 天水市| 万载县| 金华市| 瓮安县| 万山特区| 洮南市| 平远县| 盖州市| 南江县| 大余县| 莎车县| 手游| 故城县| 军事| 隆德县|