Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;时差函数计算夏令时? 如果用C++时差函数(TimeDIFF)计算出2次与后一次的差值是在日节电时间变化后,返回的差值计算出这个值。_C++_Time.h - Fatal编程技术网

c++;时差函数计算夏令时? 如果用C++时差函数(TimeDIFF)计算出2次与后一次的差值是在日节电时间变化后,返回的差值计算出这个值。

c++;时差函数计算夏令时? 如果用C++时差函数(TimeDIFF)计算出2次与后一次的差值是在日节电时间变化后,返回的差值计算出这个值。,c++,time.h,C++,Time.h,我的时间是23:00和11:00。时间在这个时间的中间变化,即向前一个小时。 我会得到12小时还是11小时的差异?功能是difftime,而不是timediff。需要两个人 time\u t作为参数时间通常表示UTC,而不是 特定的本地时间,因此不会出现夏季问题。是的,您会。早在公元2000年的时候,我就不得不在VisualStudio6中处理这个问题。然后他们更改了DST规则,使代码无效 如果你看到一个小时前的神秘跳跃,一个小时后它是DST在RTL中抬起它丑陋的头。我找不到任何名为timedi

我的时间是23:00和11:00。时间在这个时间的中间变化,即向前一个小时。


我会得到12小时还是11小时的差异?

功能是
difftime
,而不是
timediff
。需要两个人
time\u t
作为参数<代码>时间通常表示UTC,而不是
特定的本地时间,因此不会出现夏季问题。

是的,您会。早在公元2000年的时候,我就不得不在VisualStudio6中处理这个问题。然后他们更改了DST规则,使代码无效


如果你看到一个小时前的神秘跳跃,一个小时后它是DST在RTL中抬起它丑陋的头。

我找不到任何名为timediff的函数,你能显示代码吗?如果您指的是Cs difftime,那么这两个参数都是time_t(自历元起的秒数),因此在这里谈论任何时区/dst都没有意义。问题似乎归结为一个数据问题。它不是“典型地表示UTC”,它通常表示自历元起的秒数,即自特定时间点起经过的秒数。只有当您试图将秒转换为包含天、小时等的表示形式时,时区才会参与其中。@Plasmah因为历元是以UTC指定的,所以它表示的时间是UTC。从形式上讲,你说得很对,但我说的是更一般的方式:我们使用
time\u t
表示时间(例如,文件的最后修改时间),当它表示时间时(因为我们也可以使用它表示时间和间隔),时间就是UTC。表示实际上是从特定时间点开始的间隔这一事实或多或少是一个实现细节。(当然,在我们使用它作为时间的情况下)我发现,将它作为一个实现细节的想法确实让人感到困惑。他们开始做一些事情,比如想把一个时间从UTC转换成他们的时区,或者类似的事情。虽然正式规范引用UTC是正确的(可能更容易记住00:00 1.1.1970),但在时区中指定历元时,SSE的值没有差异。因此,我通常坚持认为SSE是“无时区的”,并发现这对人们来说更容易理解,因为即使没有任何时区,SSE也有一个真正的含义。迂腐地说,
time\t
不是一个时间点,而是从一个众所周知的时间点(epoch)开始经过的一段时间<代码>历元+时间\u t生成一个时间点。然而,标准的C时间函数假定一个硬编码的历元。@Plasmah:真正让我感到困惑的是,为什么有一个库函数来处理像
return(a-b)>=0这样的小事?(a-b):-(a-b)(或类似的东西)。大多数时候你都知道
a>=b
,所以你可以直接写
a-b
。库函数的存在确实(错误地)表明它进行了某种复杂的时区/dst计算,而不是简单的减法运算。