Node 判断是否节假日

30 min read

通过百度api

const axios = require('axios');
const fs = require('fs');
const {format} = require("./util");
let arr = []

let data = fs.readFileSync('holiday.json');
const {today} = require("./util");

function getRemote(){
    axios.get("http://opendata.baidu.com/api.php?query=2020%E5%B9%B4&resource_id=6018&format=json").then(res=>{
        res.data.data[0].holiday.forEach(item=> item.list.forEach(v=>arr.push(v.date)))
        fs.writeFileSync("holiday.json",JSON.stringify(arr))
      
    }).catch(e=>axios.get("http://x.com:28080/dingTalk?content=查询时间失败!"))
}


const isHoliday = function (date){

    if(data.toString()){
        arr= JSON.parse(data.toString())
    }else{
        getRemote()
    }

    const weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
    let myDate = new Date(Date.parse(today.replace(/-/g, "/")));

    if (arr.indexOf(today) > -1){
        return true
    }

    return weekDay[myDate.getDay()] === "星期六" || weekDay[myDate.getDay()] === "星期天";

}

console.log("今天是节假日吗?",isHoliday());

module.exports = isHoliday