当前位置: 首页 > 知识库问答 >
问题:

两个时间戳之间的差异(以天为单位)C++

钦宏义
2023-03-14

我在一个XML文件中有格式为(Year.Month.Day)的时间戳。

我需要找出以天为单位的两个时间戳之间的区别。

<Time Stamp="20181015">

<Time Stamp="20181012">

命名空间“std::chrono”没有成员“year”

共有1个答案

慕容晔
2023-03-14

有一种老式的方式:

#include <ctime>
#include <iomanip> // std::get_time
#include <sstream>

// ... 

std::string s1 = "20181015";
std::string s2 = "20181012";

std::tm tmb{};

std::istringstream(s1) >> std::get_time(&tmb, "%Y%m%d");
auto t1 = std::mktime(&tmb);

std::istringstream(s2) >> std::get_time(&tmb, "%Y%m%d");
auto t2 = std::mktime(&tmb);

auto no_of_secs = long(std::difftime(t2, t1));

auto no_of_days = no_of_secs / (60 * 60 * 24);

std::cout << "days: " << no_of_days << '\n';
 类似资料:
  • 问题内容: 如何获得几天内两个时间戳之间的差异?我应该为此使用datetime列吗? 我将专栏切换为日期时间。简单的减法似乎并没有在几天内给我带来结果。 我不认为是几秒钟,因为当我将一天中的秒数除以(86,400)时,我不会得到一个明智的答案: 问题答案: 如果您乐于忽略列中的时间部分,则DATEDIFF()会为您提供以天为单位的时差。

  • 问题内容: 有没有一种方法可以在MySQL中进行查询,以秒为单位提供两个时间戳之间的差异,还是需要在PHP中进行?如果是这样,我将如何去做? 问题答案: 您可以使用和函数,如下所示: 您还可以使用其他答案中建议的@Amber函数: 如果您使用的是数据类型,我猜想解决方案会稍微快一点,因为值已经存储为整数,代表自纪元(Source)以来的秒数。引用文档: 在列上使用时,该函数直接返回内部时间戳记值,

  • 我试图以天计算两个日期之间的差异。然而,当两个日期在不同的月份时,前一个月的日子被丢弃。 例如,如果开始日期是3月31日,结束日期是4月1日,则差异为0。 如果两天在同一个月,它工作正常。 提前感谢您的支持。 更新:我想到了如何修复它。除了选择的日期是一个月的最后一天,一切都按预期进行。可以在下面找到一个实时演示: 这里的演示 例如,开始日期:3月19日,结束日期:3月21日。差2天。 但当选择的

  • 当我想计算两个日期之间的天数跨度时,我在Java中对日期管理的理解有误。 假设我们有两个不同的日期: 日期1: 1986-01-24 日期2: 2017-04-20 案例1:我有一段使用日期的代码: 产出1: 案例2:使用日历的代码片段: 产出2: 案例3:在Excel中使用电子表格的示例: 当我使用MS Excel来获取这个跨度时,只是引入给定的日期并简单地进行细分,输出如下: 问题 为什么Ja

  • 问题内容: 我需要获取两个日期之间的分钟数。我知道Joda是最适合使用的,但这是针对Android项目的,因此,我更喜欢使用一些外部库,并且我正在构建的应用程序不需要计算得很精确。 但是,我正在使用的代码似乎无法正常工作。我正在尝试获取“ 11/21/2011 7:00:00 AM”和“ 11/21/2011 1:00:00 PM”之间的分钟数(应该为360分钟),但是代码我’m using返回0

  • 我需要在几天内得到两次约会的差异。 到目前为止,我已经能够得到两个日期之间的区别,但不是在几天内: 有什么想法吗?