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

news2024/11/28 10:51:40

网络接口获取链接:免费节假日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, "节假日");
}


效果展示

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隐藏在计算过程中的数据超限

【题目描述】 输入两个正整数&#xff0c;输出&#xff0c;保留5位小数。输入包含多组数据&#xff0c;结束标记为n&#xff1d;m&#xff1d;0。提示&#xff1a;本题有陷阱。 【样例输入】 2 4 65536 655360 0 0 【样例输出】 Case 1: 0.42361 Case 2: 0.00001 【题…

AI日报:北大Open Sora视频生成更强了;文心一言可以定制你自己的声音;天工 SkyMusic即将免费开放;

&#x1f916;&#x1f4f1;&#x1f4bc;AI应用 北大Open Sora视频生成更强了!时长可达10秒&#xff0c;分辨率更高 【AiBase提要:】 ⭐️ Open-Sora-Plan v1.0.0模型发布 显著提升视频生成质量和文本控制能力 ⭐️ 支持华为昇腾910b芯片&#xff0c;提升运行效率和质量。 ⭐…

如何实现OpenHarmony的OTA升级?

OTA简介 随着设备系统日新月异&#xff0c;用户如何及时获取系统的更新&#xff0c;体验新版本带来的新的体验&#xff0c;以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。OTA&#xff08;Over the Air&#xff09;提供对设备远程升级的能力。升级子系统对用户…

麻了,一面就这么难

总体而言&#xff0c;整个过程更看你回答的条理与深度&#xff0c;不太需要面面俱到&#xff0c;有自己的理解和思考反而会加分&#xff0c;不需要每道题都回答得百分百&#xff0c;有些问题属于面试官顺带提一嘴&#xff0c;但重点问题要答好。 一面 介绍下项目&#xff0c;因…

《最佳实践之》GPS NMEA-0183 协议, 解析 $GPRMC 协议

一&#xff0c;了解 GPS NMEA-0183 协议 需要基础物联网对接知识&#xff0c;需要对解析协议有一定认识。 如果不知道怎么连接硬件&#xff0c;请看我的另一篇博客&#xff1a;https://blog.csdn.net/Crazy_Cw/article/details/126613967 这篇文章只说明&#xff0c;如何解析协…

AI编程案例002/ 根据草图设计小红书封面

之前看OpenAI发布会&#xff0c;给个草图能设计个网站。 今天试了一下&#xff0c;给ChatGpt一个封面的设计草图&#xff0c;让ChatGpt编程实现一个拼图封面。 需求如下&#xff1a; 上传四张图片图片按草图排列成不同的布局&#xff0c;每一种布局是一个封面。下面草图的布…

Godot 常用UI+布局容器简单介绍

文章目录 前言相关链接Canvasitem&#xff1a;画布Control&#xff1a;UI布局基类Container&#xff1a;布局容器基类AspectRatioContainer&#xff1a;伸缩居中布局BoxContainer&#xff1a;盒子布局ColorPicker:取色器 CenterContainer&#xff1a;不伸缩居中FlowContainer&a…

软件设计师:下午题(试题三)历年真题

2021年下半年 2021年上半年 2020年下半年 2019年下半年 2019年上半年 2018年下半年 2018年上半年 2017年下半年 后续知识引入 2017年上半年 2016年下半年 2016年上半年 2015年下半年 2015年上半年 2014年下半年 2014年上半年 2013年下半年 2013年上半年 2012年下半年 2012年…

Flink运行机制相关概念介绍

Flink运行机制相关概念介绍 1. 流式计算和批处理2. 流式计算的状态与容错3. Flink简介及其在业务系统中的位置4. Flink模型5. Flink的架构6. Flink的重要概念7. Flink的状态、状态分区、状态缩放&#xff08;rescale&#xff09;和Key Group8. Flink数据交换9. 时间语义10. 水位…

给他个卖票的机会,他能卖出负数票. 多线程安全问题演示

文章目录 1.1 线程安全产生的原因注意 : 以上代码是有问题 , 接下来继续改进通过上述代码的执行结果 , 发现了出现了负号票 , 和相同的票 . 说明数据出现安全问题 1.2 线程的同步1.3 同步代码块1.4 同步方法1.5 Lock锁 1.1 线程安全产生的原因 多个线程在对共享数据进行读改写…

关系(三)利用python绘制相关矩阵图

关系&#xff08;三&#xff09;利用python绘制相关矩阵图 相关矩阵图&#xff08;Correlogram&#xff09;简介 相关矩阵图既可以分析每对变量之间的相关性&#xff0c;也可以分析单变量的分布情况。相关性以散点图的形式可视化&#xff0c;对角线用直方图/密度图表示每个变量…

MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用

数据结构 我们知道MySQL的存储引擎Innodb默认底层是使用B树的变种来存储数据的 下面我们来复习一下B树存储 B树存储 哈希存储的区别 哈希存储,只能使用等值查询 B树与B树存储 我们知道B树实际上就是B树的变种 那么为啥使用B树而不是使用B树呢? 我们知道效率的高低主要取决于…

【JavaScript】作用域和闭包

作用域 作用域是程序源代码中定义的范围。JavaScript采用词法作用域&#xff0c;也就是静态作用域。所谓词法作用域就是在函数定义的时候就已经确定了。 let value 1 function foo(){console.log(value) } function bar(){let value 2foo() } bar() // 1变量对象是当前代码…

2.基础乐理-唱名的来历,简谱的构造

前置内容&#xff1a;1.唱名与记住唱名的方法 唱名的来历&#xff1a; 很久很久以前&#xff08;公元前&#xff09;各个文明开始诞生和慢慢发展&#xff0c;随着文明的发展&#xff0c;各个文明都开始出现自己的音乐&#xff0c;根据考古学家的发现在 公元前1800年&#xff…

【随笔】Git 高级篇 -- 整理提交记录(下)rebase(十六)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

每日汇评:地缘冲突休战会阻碍黄金创纪录的涨势吗?

尽管以色列与哈马斯的地缘政治紧张局势有所缓和&#xff0c;金价仍冲破 2350 美元&#xff0c;创下新高&#xff1b; 对央行黄金购买量激增的预期抵消了美国非农就业数据主导的美联储强硬押注&#xff1b; 在美国CPI数据公布之前&#xff0c;由于 RSI 极度超买&#xff0c;金价…

YOLOV8注意力改进方法: CoTAttention(Visual Question Answering,VQA)附改进代码)

原论文地址&#xff1a;原论文下载地址 论文相关内容介绍&#xff1a; 论文摘要翻译&#xff1a; 具有自关注的Transformer导致了自然语言处理领域的革命&#xff0c;并且最近在许多计算机视觉任务中激发了具有竞争性结果的Transformer风格架构设计的出现。然而&#xff0c;大…

day02php环境和编译器—我耀学IT

一、环境介绍 1、web 环境 使用 PHP 需要先安装环境&#xff0c;安装环境比较麻烦&#xff0c;需要安装Web服务、PHP应用服务器、MySQL管理系统。 Web服务&#xff1a;apache 和 nginx PHP&#xff1a;多版本 MySQL&#xff1a;多版本 2、环境集成包 因为多环境、多版本、多系…

查看Linux系统相关信息

注&#xff1a; 本文只是博主学习记录分享&#xff0c;仅供参考。如有错误肯定是博主理解有问题&#xff0c;谢谢&#xff01; 一、查看当前操作系统的内核信息 命令&#xff1a;uname -a 二、查看当前操作系统版本信息 命令&#xff1a;cat /proc/version 这条命令可以查看到…

什么是电子邮件加密?电子邮件加密有几种类型?

在当今数字时代&#xff0c;电子邮件已经成为人们日常生活中不可或缺的沟通工具&#xff0c;据相关数据统计&#xff0c;全球每天发送的电子邮件数以亿计&#xff0c;而这些邮件里面通常包含了姓名、地址、个人身份信息 (PII)、登录凭证、财务信息、法律合同、知识产权等有价值…