ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++ mktime和时间秒数的理解

2021-06-22 04:01:27  阅读:273  来源: 互联网

标签:utc 秒数 chrono int days c++ mktime tm year


// ConsoleApplication7.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <chrono>
#include <iostream>

using namespace std;

//判断平年和闰年的方法
int days(int year){
	if (!(year % 400) || (!(year % 4))&&(year%100)){
		printf("year is %d\n", year);
		return 366;
	}	else{
		return 365;
	}
}

//
int daysSpan(int startY, int endY){
	int sum = 0;
	for (int i = 0; i < endY - startY; i++){
		sum += days(i+startY);
	}
	return sum;
}


int _tmain(int argc, _TCHAR* argv[])
{

	uint64_t secs = uint64_t(daysSpan(1, 1970)) * 24 * 3600;
	printf("%ld\r\n", secs);

	//
	struct tm t;
	t.tm_hour = 0;
	t.tm_min = 0;
	t.tm_sec = 3;
	t.tm_year = 2017 - 1900;
	t.tm_mon = 0;//1月
	t.tm_mday = 1;//1

	time_t t_utc =  mktime(&t);
	t_utc += 8 * 3600;
	//gmtime_s(&t, &t_utc);

	//t_utc = mktime(&t);

	printf("%d\n",t_utc);

	double days = double(secs + t_utc) / 24. / 3600.;

	printf("days is %f\n", days);


	chrono::seconds S1(int64_t(44195.2973263889 * 3600 * 24));
	const chrono::seconds S2(2208988800);

	chrono::seconds s=S1-S2;
	
	//s -= chrono::hours(8);

	time_t tt;
	tt = chrono::system_clock::to_time_t(chrono::time_point<chrono::system_clock>(s));

	//
	struct tm t1;
	
	//localtime_s(&t1, &tt);
	//ctime_s()


	char buftime[100] = { 0 };
	cout << gmtime_s(&t1, &tt) << endl;;

	cout << asctime_s(buftime, 100, &t1);

	return 0;
}


标签:utc,秒数,chrono,int,days,c++,mktime,tm,year
来源: https://www.cnblogs.com/iwetuan/p/14916751.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有