C++ 计算多次累计不连续时间差

#include <iostream>
#include <ctime>
#include <cstdio>

struct tm calc_date_diff(time_t& _second)
{
  //计算年,如果只告诉秒,那么年的概念中是否可以忽略掉闰年的概念的, 因为这个时间段本来就不是一个连续的时间段
  //如果你不忽略掉闰年的概念,怎么去计算断断续续的时间总和所持续的时间
  struct tm timeinfo;

  timeinfo.tm_year = _second/(365*24*60*60);
  _second -= timeinfo.tm_year*365*24*60*60;

  timeinfo.tm_mon = _second/(24*60*60*30);
  _second -= timeinfo.tm_mon*24*60*60*30;

  timeinfo.tm_mday = _second/(24*60*60);
  _second -= timeinfo.tm_mday*24*60*60;

  timeinfo.tm_hour = _second/(60*60);
  _second -= timeinfo.tm_hour*60*60;

  timeinfo.tm_min = _second/60;
  _second -= timeinfo.tm_min*60;

  timeinfo.tm_sec = _second;
  return timeinfo;
}

int main(int argc,char* argv[])
{
  time_t rawtime;
  time (&rawtime);
  //struct tm timeinfo = calc_date_diff(rawtime);

  struct tm timeinfo = calc_date_diff(2162);  


  cout<<"year: "<<timeinfo.tm_year<<endl<<"month: "<<timeinfo.tm_mon<<endl;;
  cout<<"day: "<<timeinfo.tm_mday<<endl<<"hour: "<<timeinfo.tm_hour<<endl;
  cout<<"minutes: "<<timeinfo.tm_min<<endl<<"second: "<<timeinfo.tm_sec<<endl;


  system("pause");
  return 0;
}

 
posted @ 2012-09-10 17:29  Zhaoyier  阅读(336)  评论(0)    收藏  举报