首页 > 解决方案 > C++ 代码不计算时间差,但它返回 -0

问题描述

#include <stdio.h>
#include<iostream>/* printf */
#include <time.h>       /* time_t, struct tm, difftime, time, mktime */

using namespace std;

//Code for calculating time date difference
int main ()
{
  time_t now;
  struct tm newyear1, newyear2;
  double seconds;

  time(&now);  /* get current time; same as: now = time(NULL)  */

  newyear1 = *localtime(&now);

  newyear1.tm_hour = 10; newyear1.tm_min = 30;
  newyear1.tm_mon = 0;  newyear1.tm_mday = 1;newyear1.tm_year = 2021;
  newyear2 = *localtime(&now);

  newyear2.tm_hour = 23; newyear2.tm_min = 10;
  newyear2.tm_mon = 0;  newyear2.tm_mday = 1;newyear2.tm_year = 2021;

  seconds = difftime(mktime(&newyear2),mktime(&newyear1))/3600.0;

  cout<<seconds<<" hours since new year in the current timezone.";

  return 0;
}

标签: c++

解决方案


推荐阅读