C++ Chrono 判断一天是否是周末?

2024-01-24

我的日期格式为年 (int)、月 (int) 和日 (int),例如 2018, 10, 12 表示 2018 年 10 月 12 日。

有没有办法可以使用 C++ Chrono 库和这些整数来确定我的“日期”是否是周末?

如果没有,实现这一目标的最简单的替代方法是什么?


在 C++20 中,您将能够执行以下操作:

#include <chrono>

constexpr
bool
is_weekend(std::chrono::sys_days t)
{
    using namespace std::chrono;
    const weekday wd{t};
    return wd == Saturday || wd == Sunday;
}

int
main()
{
    using namespace std::chrono;
    static_assert(!is_weekend(year{2018}/10/12), "");
    static_assert( is_weekend(year{2018}/10/13), "");
}

当然如果输入不是constexpr,那么计算也不能是。

据我所知,还没有人发布这个,但是您可以使用此语法抢占先机Howard Hinnant 的日期时间库 https://github.com/HowardHinnant/date。你只需要#include "date/date.h"并改变一些using namespace std::chrono; to using namespace date;.

#include "date/date.h"

constexpr
bool
is_weekend(date::sys_days t)
{
    using namespace date;
    const weekday wd{t};
    return wd == Saturday || wd == Sunday;
}

int
main()
{
    using namespace date;
    static_assert(!is_weekend(year{2018}/10/12), "");
    static_assert( is_weekend(year{2018}/10/13), "");
}

这适用于 C++17、C++14,并且如果删除constexpr,C++11。它不会移植到早于 C++11 的版本,因为它依赖于<chrono>.

对于奖励积分,上述函数也适用于当前时间 (UTC):

    assert(!is_weekend(floor<days>(std::chrono::system_clock::now())));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ Chrono 判断一天是否是周末? 的相关文章

  • 什么定义了类型的大小?

    ISO C 标准规定 sizeof char lt sizeof short lt sizeof int lt sizeof long 我在 BIT Linux mint 19 1 上使用 GCC 8 大小为long int is 8 我正
  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • 更新 Azure Blob 上的 LastModified

    我正在移植代码以使用 C 中的 Azure 存储 SDK 传统上 我称其为更新修改文件的上次写入 修改时间 File SetLastWriteTimeUtc fileName lastWriteTimeUtc 要更新 blob 的上次修改时
  • 头文件中实现的函数的静态与内联

    我想到的方式inline在 C 中用于链接 作用域 我把它放在同一个篮子里extern and static对于全局对象 通常 对于在头文件中实现的函数 我的首选解决方案是将其设为静态 In Foo h static void foo Do
  • C# 中 PKCS11Interop 库的线程安全使用 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 PKCS11Interop 在 HSM 内执行密钥管理操作 我使用的 HSM 是 Thales PCI Express 下面是
  • 如何从不同的线程访问控件?

    如何从创建控件的线程以外的线程访问控件 避免跨线程错误 这是我的示例代码 private void Form1 Load object sender EventArgs e Thread t new Thread foo t Start p
  • 如何使用 CUDA/Thrust 对两个数组/向量根据其中一个数组中的值进行排序

    这是一个关于编程的概念问题 总而言之 我有两个数组 向量 我需要对一个数组 向量进行排序 并将更改传播到另一个数组 向量中 这样 如果我对 arrayOne 进行排序 则对于排序中的每个交换 arrayTwo 也会发生同样的情况 现在 我知
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • 模板与非模板类,跨编译器的不同行为

    我在一些应用程序中使用编译时计数器 它确实很有用 昨天我想用 gcc 编译一个程序 我之前使用的是 msvc 并且计数器的行为在模板类中发生了变化 它在模板类中不再工作 过于简化的代码 Maximum value the counter c
  • 检查两个函数或成员函数指针的签名是否相等

    我编写了一些代码来检查自由函数的签名是否等于成员函数的签名等 它比较提取的返回类型和函数参数 include
  • ASP.NET MVC 动作过滤器

    有谁知道即使在 CATCH 块中 ActionFilterAttribute 类的 OnResultExecuted 方法是否也会执行 ie CookiesActions public ActionResult Login Usuarios
  • 查找方法不适用于 EF6.1 模拟

    我已经使用这些 msdn 指南设置了模拟 使用模拟框架进行测试 EF6 及以上 http msdn microsoft com en us data dn314429 var bsAc db BusAcnts FirstOrDefault
  • 使用 OleDbCommand / OleDbDataAdapter 读取 CSV 文件

    我不明白为什么 但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时 在这两种情况下 生成的数据结构良好 它识别文件头中的列 但行数据都是空字符串 我之前已经成功进行过多次 CSV 处理 因此我
  • Windows 上本机 C++ 应用程序中的自动死代码检测?

    背景 我有一个用原生 C 编写的应用程序 花了几年的时间 大约有 60 KLOC 有很多函数和类已经死了 可能有 10 15 就像下面提出的类似的基于 Unix 的问题 我们最近开始对所有新代码进行单元测试 并尽可能将其应用于修改后的代码
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 使用 cmake 将两种解决方案合二为一

    我有两个单独的 Visual Studio 2013 解决方案 我想将它们迁移到一个解决方案中 因为第一个解决方案 使用 Qt 充当第二个解决方案的 GUI 最后 我希望有一个结构如下的单一解决方案 Solution All Build P
  • 基础设施 - 同步和异步接口和实现? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在实现库 基础设施时 并且该 API 的用户希望同步和异步使用代码 我读到混合同步和异步并不是一个好主意 例如 同步实现包括等待异步实现 显然
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d

随机推荐

  • Conv1D 层 Keras 的 input_shape

    我正在尝试制作一个用于非图像数据集二元分类的 CNN 模型 我的模型 代码正在运行并产生非常好的结果 准确性很高 但我无法理解input shape第一层参数Conv1D X 或输入的形状 此处x train df 为 2000 28 它有
  • 如何为 Nexus5 和 Nexus 5x 设置正确的边距

    我正在开发该应用程序 现在遇到了很大的问题 据我们所知 nexus 5 和 nexus 5x 使用相同的资源目录 xxhdpi 我的观点由于一些空白而被打破 即我必须为 nexus 5 设置 40dp 为 nexus5x 设置 65dp 那
  • 如何在 Eclipse PDE 中表达项目间依赖关系

    我正在寻找处理混合项目类型之间项目间依赖关系的最佳实践 其中一些项目是 eclipse 插件 OSGI 捆绑项目 RCP 应用程序 而其他项目只是普通的旧 java 项目 Web 服务模块 很少有 Eclipse 插件依赖于 Java 项目
  • Bootstrap 中占位符颜色变化

    如何更改 Bootstrap 中的占位符颜色 我尝试过以下代码 但不起作用 input webkit input placeholder color red input moz placeholder color red form cont
  • 异步 HttpHandler 和 WriteAsync

    我一直在 Ayende Rahien 的博客上尝试一些代码here http ayende com blog 72705 node cs它演示了使用异步 HttpHandler 来提高可以并发处理的请求数量 不幸的是我什至可以让基本的例子工
  • mapreduce 复合关键示例 - 未显示所需的输出

    作为mapreduce和hadoop世界的新手 在尝试了基本的mapreduce程序之后 我想尝试compositekey示例代码 输入数据集如下 国家 州 县 百万人口 美国 加利福尼亚州 阿拉米达 100 美国 加利福尼亚州 洛杉矶 2
  • 使用 List 类型的私有变量帮助 Java 中的抽象类

    自从我上次用 Java 编写代码以来已经有两年了 所以我的编码技能有点生疏了 我需要将数据 用户配置文件 保存在不同的数据结构中 ArrayList and LinkedList 并且他们都来自List 我希望尽可能避免代码重复 并且我还希
  • RabbitMQ 数据库文件

    我正在运行 RabbitMQ V 2 0 0 在 Linux 机器上 mnesia 库默认是当前的 但 Rabbit 在该目录中创建目录 例如 电子邮件受保护 cdn cgi l email protection 目录名称中的ip基于机器的
  • time.perf_counter() 或 time.process_time() 用于性能测量?

    我了解 time perf counter 测量经过的总时间 即使进程当前未运行 然而 time process time 仅测量进程实际运行的时间 如果我只是衡量一个功能的性能 这两个中哪一个是首选 由于我实际上对 CPU 花在处理其他进
  • 使用 python 的 eval() 与 ast.literal_eval()

    我遇到一些代码的情况eval 提出了一个可能的解决方案 现在我从来没有使用过eval 但在此之前 我已经了解到很多有关它可能造成的潜在危险的信息 也就是说 我对使用它非常谨慎 我的情况是我有用户提供的输入 datamap input Pro
  • Windows 进程什么时候会耗尽内存?

    在 Windows Server 2003 Enterprise Edition SP2 下 3GB 开关未启用 据我了解 一个进程的最大可寻址内存是 4GB 我可能是错的 那是 2GB 的私有字节和 2GB 的虚拟字节吗 当达到私有字节限
  • 如何使用 sqlalchemy 创建带有日期范围的排除约束

    我知道只需使用原始 sql 我就可以添加排除约束 如下所示 ADD CONSTRAINT unique daterange constraint EXCLUDE USING gist foo WITH daterange start dat
  • PyInstaller:模块未包含在 --onefile 中,但与 --onedir 一起工作正常

    我正在使用 PyInstaller 将我的应用程序捆绑到一个 exe 文件中 问题是它与 onedir 选项一起工作正常 但在使用 onefile 构建时找不到模块 onedir 和 onefile 在构建过程中都会说 lt gt INFO
  • 显示大型结果集

    这是我的问题 我需要存储一个lot日志消息 并认为将其保存在 SQLite3 数据库中以便能够轻松搜索和过滤它是明智的 我将在标准列表小部件中显示日志消息 使用 wxWidgets 该列表将有几列 并且可以由用户排序和过滤 现在 我不确定处
  • Excel 重命名其他计算机上的 Activex 控件

    我有一个带有 Activex 控件 组合框 命令按钮 选项按钮 复选框 的工作表 在我的计算机上 我已重命名所有控件 例如 CButtonPMR OButton Comp 等 但是当我在其他计算机上打开文件时 所有控件都被重命名为默认的默认
  • 在非 Windows 平台(Linux 或 Mac)上使用 Python 处理 Access 数据库

    我想访问 Microsoft Access 数据库中的数据 我有一些 accdb 和 mdb 文件 想用 Python 读取它们 根据我的研究 pyodbc只能在Windows平台上使用 但我正在Mac OS X上工作 我是Python新手
  • 使用弱密钥暴力破解 DES

    我正在学习密码学课程 但正在做一项作业 说明如下 明文 plain6 txt 已使用 DES 加密为 encrypt6 dat 使用 64 位密钥作为 8 个字符的字符串给出 64 位 其中每第 8 位被忽略 所有字符均为字母 小写或大写
  • 有没有一种好的方法将 std::minmax(a, b) 分配给 std::tie(a, b) ?

    std tie a b std minmax a b 我认为这是直观的代码 干净且易于理解 太糟糕了 它没有按预期工作 因为std minmax https en cppreference com w cpp algorithm minma
  • php:删除Windows上的共享内存

    这段代码 shmop delete shmop close 不删除共享内存 一个实验 shmid shmop open 1234 a 0 0 var dump shmid yields bool false 当然 但 shmid shmop
  • C++ Chrono 判断一天是否是周末?

    我的日期格式为年 int 月 int 和日 int 例如 2018 10 12 表示 2018 年 10 月 12 日 有没有办法可以使用 C Chrono 库和这些整数来确定我的 日期 是否是周末 如果没有 实现这一目标的最简单的替代方法