通过网络api获取日期对应的节假日信息

网络接口获取链接:免费节假日API_原百度节假日API

HolidayJudge.h

#pragma once

#include <QtWidgets/QWidget>
#include "ui_HolidayJudge.h"

enum DATESTATE
{
    WORK=0,//工作日
    DAYOFF,//休息日
    HOLIDAY//节假日
};

class HolidayJudge : public QWidget
{
    Q_OBJECT

public:
    HolidayJudge(QWidget *parent = nullptr);
    ~HolidayJudge();

private slots:
    void slotQueryGet();
    void slotQueryPost();

private:
    void init();
    
private:
    Ui::HolidayJudgeClass ui;

    QMap<DATESTATE, QString> m_dateInfoMap;
};

HolidayJudge.cpp

#include "HolidayJudge.h"

#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QList>
#include <QSslError>

HolidayJudge::HolidayJudge(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    init();

    QObject::connect(ui.pushButton_queryGet, &QPushButton::clicked, this, &HolidayJudge::slotQueryGet);
    QObject::connect(ui.pushButton_queryPost, &QPushButton::clicked, this, &HolidayJudge::slotQueryPost);
}

HolidayJudge::~HolidayJudge()
{}

void HolidayJudge::slotQueryGet()
{
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    connect(manager, &QNetworkAccessManager::finished,
        this, [=](QNetworkReply* reply) {
            //ui.textBrowser->append(QString(reply->readAll()));
            int val = QString(reply->readAll()).toInt();//0:工作日,1:休息日,2:节假日
            QString info = ui.dateEdit->date().toString("yyyy/MM/dd") + QString("是%1").arg(m_dateInfoMap.value(static_cast<DATESTATE>(val)));
            ui.textBrowser->append("get: " + info);

            reply->deleteLater();
        });

    QString date = ui.dateEdit->date().toString("yyyyMMdd");
    QUrl url("http://tool.bitefu.net/jiari/?d=" + date);
    manager->get(QNetworkRequest(url));

    //开启事件循环,等待直到服务器返回数据后再执行
	//QEventLoop eventLoop;
	//connect(manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
	//eventLoop.exec();

    manager->deleteLater();
}

void HolidayJudge::slotQueryPost()
{
    QNetworkAccessManager* accessManager = new QNetworkAccessManager(this);
    QNetworkRequest request;
    QString date = ui.dateEdit->date().toString("yyyyMMdd");
    QUrl url("http://tool.bitefu.net/jiari/?d=" + date);
    request.setUrl(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));

    QNetworkReply* reply = accessManager->post(request, QByteArray());
    QObject::connect(reply, &QNetworkReply::readyRead, this, [this, reply]() {
        int val = QString(reply->readAll()).toInt();//0:工作日,1:休息日,2:节假日
        QString info = ui.dateEdit->date().toString("yyyy/MM/dd") + QString("是%1").arg(m_dateInfoMap.value(static_cast<DATESTATE>(val)));
        ui.textBrowser->append("post: " + info);
        reply->deleteLater();
        });
    QObject::connect(reply, &QNetworkReply::errorOccurred,
        this, [=](QNetworkReply::NetworkError error) {
        
        });
    QObject::connect(reply, &QNetworkReply::sslErrors,
        this, [=](const QList<QSslError>& error){

    });

}

void HolidayJudge::init()
{
    m_dateInfoMap.insert(WORK, "工作日");
    m_dateInfoMap.insert(DAYOFF, "休息日");
    m_dateInfoMap.insert(HOLIDAY, "节假日");
}


效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/527238.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

F5防火墙如何应对恶意攻击?一文搞懂

当前&#xff0c;5G网络模糊了安全防护边界&#xff0c;加速了全球网络攻击升级&#xff0c;攻防对抗变得日益激烈&#xff0c;导致传统网络安全防护措施越来越难以有效预测和应对潜在威胁。面对复杂部署环境&#xff0c;企业的安全团队正在努力寻找一致性的安全防护和可见性策…

谷歌浏览器用不了怎么办?

打开谷歌浏览器点击右上角的三个点 &#xff0c; 点击设置 在搜索引擎里面把这个改成百度 然后越狱登录你的谷歌账号就可以用了 我个人用的越狱软件是r2rayn &#xff0c; 浏览器上面可以搜索的 默认浏览器那里可以设置成谷歌

IP网络对讲广播系统审计

前言 这个系统是前两年在一个内网遇到的&#xff0c;当时顺手试了一个admin登陆之后再没有然后了&#xff0c;最近发现有大佬分享关于这个系统的漏洞&#xff0c;于是就把自己当初看的几个漏洞分享一下&#xff0c;系统比较简单&#xff0c;漏洞点很多&#xff0c;不要做坏事哦…

C++练级之路——类和对象(上)

1、类的定义 class 类名{//成员函数 //成员变量}; class为定义的关键字&#xff0c;{ }内是类的主体&#xff0c;注意后面的 ; 不要忘了 类体中的内容成为类的成员&#xff0c;类中的变量为成员变量或类的属性&#xff0c;类中的函数为成员函数或类的方法&#xff0c; 类的两种…

【Shell语言学堂】Shell 脚本练习1

Shell 脚本练习 shell语言实战 Shell 脚本练习&#x1f4a7;CSDN划过手的泪滴t现有一个脚本可传入n个参数&#xff0c;要求在脚本中实现在终端输出第n个参数之前的所有参数(不包含第n个参数)编写一个计算bmi体质指数的脚本&#xff0c;该脚本需要用户输入身高和体重信息&#x…

单调栈(LeetCode-下一个更大元素)

每日一题 今天刷到了一道用到单调栈来解决的题目&#xff0c;想到自己没有总结过单调栈的知识点&#xff0c;因此想总结一下。 介绍 什么是单调栈&#xff1f; 单调栈的定义其实很简单&#xff0c;所谓单调栈就是指一个单调递增或是单调递减的栈。 那单调栈有什么用呢&#x…

CSS层叠样式表学习(基础选择器)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS&#xff08;2&#xff09;的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 二、CSS基础选择器 2.1 CSS选择器的作用 2.2 选择器分类 2.3 标签选择器 2.…

Windows系统下安装java开发环境所需的JDK开发工具包

目录 一、JDK开发工具包下载二、安装三、环境变量配置3.1 添加安装包路径3.2 添加lib路径3.3 添加bin目录 四、检查是否安装成功五、总结 一、JDK开发工具包下载 官网地址&#xff1a;JDK下载 打开网址后有多个版本的JDK&#xff0c;学者根据自己电脑需求选择对应版本下载。如…

精酿啤酒:传统酿造与现代工艺的结合

在啤酒酿造领域&#xff0c;传统酿造与现代工艺的结合是提品质和生产效率的重要途径。Fendi Club啤酒在酿造过程中&#xff0c;巧妙地将传统酿造工艺与现代技术相结合&#xff0c;为消费者带来了品质的啤酒体验。 Fendi Club啤酒注重传统的天然原料选择。他们坚持使用大麦、啤酒…

免费云服务器汇总,最长永久免费使用

随着云计算技术的快速发展&#xff0c;越来越多的企业和个人开始将业务迁移到云端。云服务器作为云计算的重要组成部分&#xff0c;以其灵活、高效、可扩展等特点受到广泛关注。然而&#xff0c;许多人在初次接触云服务器时&#xff0c;可能会对高昂的价格望而却步。为了帮助大…

day76 jquery

知识点: 1 在HTML中引入jQuery 2 jQuery中就绪函数 3 jQuery中选择器 4 使用jQuery获取表单元素的值 及标签中间的内容 5 jQuery中获取标签属性 6 jQuery设置和获取标签样式 ----------------------------------- 一 在HTML中引入jQuery 1 1) 把jQue…

工作这么久,你有测试思维了吗?

在如今竞争激烈的职场中&#xff0c;拥有测试思维已成为一个不可或缺的技能。无论你是从事软件开发、项目管理还是市场营销等各行各业&#xff0c;测试思维都能够帮助你更好地解决问题、提高工作效率以及保障质量。然而&#xff0c;工作时间的长短并不代表一个人是否具备测试思…

python ConfigParser:Python 标准库,ini 文件解析器

大家好&#xff01;在进行接口自动化工作时&#xff0c;配置文件是非常常见和重要的一部分。Python 提供了一个强大的标准库——ConfigParser&#xff0c;用于解析和处理 INI 文件。在本文中&#xff0c;我们将介绍如何使用 ConfigParser 来读取和操作 INI 文件&#xff0c;并提…

【Linux进阶之路】ARP欺骗实验

正文 话不多说&#xff0c;直接干&#xff01; 首先我们需要准备一下环境&#xff0c;先配置VMARE&#xff0c;然后下载KALI的虚拟机。 详细的安装教程视频&#xff1a;点击跳转&#xff0c;下载KALI可能要半个小时&#xff0c;中间可以看个剧玩个游戏缓一缓。 配置好之后&am…

ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback

ArcGIS在线历史影像网站 World Imagery Wayback(网址:https://livingatlas.arcgis.com/wayback/)提供了数期历史影像在线浏览服务,之前不少自媒体作者在文中宣称其能代表Google Earth历史影像。 1、一点对比 (1)同一级别下的版本覆盖面 以下述区域为例,自2014年2月20…

提升自媒体写作效率:7款必备工具推荐! #知识分享#媒体#AI写作

我们做自媒体运营&#xff0c;想要快速的创作内容&#xff0c;提供文章的创作速度是我们的目标&#xff0c;我们别的大佬可以很快地就创作出一篇内容&#xff0c;而自己墨迹半天确出不了一个字呢&#xff1f;其实这关乎到创作技巧&#xff0c;下面小编就跟大家分享如何利用自媒…

OneFlow深度学习框架:技术优势与功能特点

文章目录 一、概要二、核心技术优势2.1、分布式训练2.2、极致性能2.3、端到端的智能数据平台2.4、开放灵活的算法支持2.5、跨平台支持 三、功能特点四、OneFlow与TensorFlow对比四、安装OneFlow五、总结 一、概要 OneFlow是一款基于Python的开源深度学习框架&#xff0c;旨在实…

简介有向无环图DAG

Sui创纪录的每秒交易量部分归功于数学构造&#xff0c;即有向无环图&#xff08;Directed Acyclic Graph&#xff0c;DAG&#xff09;&#xff0c;该构造通过以最高效的方式处理交易来加速网络交易&#xff0c;而不是按照先来先服务的线性进展。 区块链是设计用于确保数据完整…

【简单讲解下Lisp的学习历程】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

模型融合的方法

集成学习&#xff1a;通过构建并结合多个学习器来完成学习任务&#xff0c;有时也被称为多分类器系统、基于委员会的学习等。&#xff08;集成学习不是只有同质学习器的集成&#xff0c;还有异质学习器的集成&#xff09; 模型融合&#xff1a;通过多个模型共同决策提升任务的…