文档章节

windows获取当前时间到1970年的秒数

xxdd
 xxdd
发布于 2017/05/24 15:39
字数 186
阅读 33
收藏 0
//用于计算1970年1月1日到现在的秒数
/*the seconds of round year = 3600*24*366 */
#define SECONDOFROUNDYEAR 31622400
/*the seconds of general year = 3600*24*365 */
#define SECONDOFYEAR      31536000
//24+60+60 
#define MAXSECONDOFDAY    86400


bool IsRound(int year)
{
	/*is round year?*/
	if((year%100)&&(year%4==0)) return 1;
	if((year%100==0)&&(year%400==0)) return 1;
	return 0;
}

unsigned int SecondsFrom1970()
{
	SYSTEMTIME st;
	unsigned int tTemp=0;
	unsigned int tSecond=0;
	int month_s[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
	{31,29,31,30,31,30,31,31,30,31,30,31}};
	int nDays=0;
	int nCount=0;
	int i;
	int j;

	GetLocalTime(&st);
	tSecond=st.wHour*3600+st.wMinute*60+st.wSecond;

	for (i=1970;i<st.wYear;++i)
	{
		if (IsRound(i))
			++nCount;
	}

	tTemp+=(st.wYear-1970-nCount)*SECONDOFYEAR+nCount*SECONDOFROUNDYEAR;

	if (st.wMonth>1)
	{
		if (IsRound(st.wYear))
		{
			for (j=0;j<st.wMonth-1;++j)
			{
				tTemp+=month_s[1][j]*MAXSECONDOFDAY;
			}
			tTemp+=(st.wDay-1)*MAXSECONDOFDAY+tSecond;
		}
		else
		{
			for (j=0;j<st.wMonth-1;++j)
			{
				tTemp+=month_s[0][j]*MAXSECONDOFDAY;
			}
			tTemp+=(st.wDay-1)*MAXSECONDOFDAY+tSecond;
		}
	}
	else
	{
		tTemp+=(st.wDay-1)*MAXSECONDOFDAY+tSecond;
	}

	return tTemp;
}

 

© 著作权归作者所有

共有 人打赏支持
xxdd
粉丝 3
博文 54
码字总数 12958
作品 0
海淀
程序员
小朋友学Python(14):日期和时间

一、获取当前时间戳 例1 运行结果: 说明: 这里得到的时间是时间戳(timestamp),是从1970年1月1日0时0分开始计算的,单位是秒。 时间戳单位最适于做日期运算。但是1970年之前的日期就无法...

翡翠森林Z
01/02
0
0
python获取当前时间对应unix时间戳的方法

本文实例讲述了python获取当前时间对应unix时间戳的方法。分享给大家供大家参考。具体分析如下: Unix timestamp:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 ? 1 2 3 ...

Galy_绿
2016/03/17
27
0
linux时间编程常用函数

首先说明时间类型分为两种: Coordinated Universal Time(UTC):世界标准时间,也就是格林威治时间(Greenwich Mean Time, GMT) Calendar Time:日历时间,从一个标准时间点(如:1970年1月1日0...

NightCode
2015/04/13
0
0
时间戳 NSTimeInterval

时间戳转分钟

asjoker
2016/08/23
5
0
第34天:日期函数、定时器、倒计时

一、日期函数(Date()) 设置本地日期:年月日时分秒 1、声明日期 var date=new Date();//创建一个新的日期函数 2、使用函数 date.getTime();//提倡使用, date.valueOf();得到距离1970年的毫...

半指温柔乐
2017/09/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

io流

码农屌丝
4分钟前
0
0
SpringBoot基础篇之重名Bean的解决与多实例选择

更多Spring文章,欢迎点击 一灰灰Blog-Spring专题 当通过接口的方式注入Bean时,如果有多个子类的bean存在时,具体哪个bean会被注入呢?系统中能否存在两个重名的bean呢?如果可以,那么怎么...

小灰灰Blog
14分钟前
0
0
记录一次dubbo项目实战

一、案例说明 存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表。 二、环境搭建 安装zookeeper,解压(zookeeper-3.4.8.tar.gz)得到如下: 然后进入conf将zoo_s...

Java烂猪皮
18分钟前
0
0
拜托,别再问怎么深入学习分布式架构了!

由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中...

Java架构资源分享
19分钟前
0
0
《netty入门与实战》笔记-05:心跳与空闲检测

本小节,我们一起探讨最后一个话题:心跳与空闲检测 首先,我们来看一下,客户端与服务端之间的网络会存在什么问题? 1. 网络问题 下图是网络应用程序普遍会遇到的一个问题:连接假死 连接假...

Funcy1122
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部