博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算从1970年到现在累计的秒数
阅读量:6201 次
发布时间:2019-06-21

本文共 1329 字,大约阅读时间需要 4 分钟。

没啥技术含量,只不过是在没事干,就把这个也记上,Windows下好像有这个api函数,但是在wince下用不了,所以还得自己封装一个。大体代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*the seconds of round year = 3600*24*366 */
#define SECONDOFROUNDYEAR 31622400
 
/*the seconds of general year = 3600*24*365 */
#define SECONDOFYEAR 31536000
 
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;
}
 
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;
}

转载地址:http://lmxca.baihongyu.com/

你可能感兴趣的文章
mysql主从配置
查看>>
EL表达式自定义函数的简单学习
查看>>
更改docker的存放路径
查看>>
mysql sql语句大全
查看>>
XML学习笔记一
查看>>
CAD无吊顶画弱电点位图总结
查看>>
CentOS7安装EPEL的两种方式
查看>>
Failed to create the Java Virtual Machine
查看>>
安装Oracle 10g 的正在检查网络配置需求...未执行
查看>>
mysql的安装,关于/etc/init.d/下没有mysqld的命令,及php与mysql的连接测试
查看>>
centos 使用 pwgen 生成高强度密码
查看>>
Openstack Nova 二次开发之Nova-extend服务实现
查看>>
centos6.8 x64安装keepalived-1.3.5+lvs
查看>>
Linux自学笔记——用户和组管理
查看>>
BlockChange | 这些热门案例让你一下子搞懂区块链!
查看>>
玩转树莓派——在树莓派上运行Windows 3.2
查看>>
[PaPaPa][需求说明书][V1.0]
查看>>
CISCO 交换设备IOS 备份/恢复操作
查看>>
Linux应用总结(1):自动删除n天前日志
查看>>
GTID的复制的搭建过程
查看>>