首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在未来的方向上,从工作日y到工作日x的一天距离要这么复杂?

为什么在未来的方向上,从工作日y到工作日x的一天距离要这么复杂?
EN

Stack Overflow用户
提问于 2020-03-23 17:33:23
回答 1查看 96关注 0票数 2

libc++中,这是我们从工作日y到工作日x (lhs)的未来方向。

代码语言:javascript
复制
constexpr days operator-(const weekday& __lhs, const weekday& __rhs) noexcept
{
    const int __wdu = __lhs.c_encoding() - __rhs.c_encoding();
    const int __wk = (__wdu >= 0 ? __wdu : __wdu-6) / 7;
    return days{__wdu - __wk * 7};
}

date.h库中的相同

代码语言:javascript
复制
CONSTCD14
inline
days
operator-(const weekday& x, const weekday& y) NOEXCEPT
{
    auto const wdu = x.wd_ - y.wd_;
    auto const wk = (wdu >= 0 ? wdu : wdu-6) / 7;
    return days{wdu - wk * 7};
}

我想知道为什么我们就不能这样做?

代码语言:javascript
复制
return days{x.wd_ - y.wd_ >= 0 ? x.wd_ - y.wd_ : x.wd_ - y.wd_ + 7};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-23 18:31:18

其基本原理是,我想对weekday(即!ok() )提供一些支持。例如:

代码语言:javascript
复制
auto x = weekday{13} - weekday{5};  // x == 1d

也就是说,对于大于0,6的范围,算法是模7的。这是一个实验,我想这个实验还在进行中。这种支持没有进入C++20规范

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60818740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档