博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux当前时间到1970年秒数,Linux下获取当前时间到1970年之前某年份的秒数的C代码实现...
阅读量:6470 次
发布时间:2019-06-23

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

/*********************************************************************

*版权所有 (C)2015, Zhou Zhaoxiong。

**文件名称:GetSecNumBetweenTwoYear.c

*文件标识:无

*内容摘要:获取当前时间到1970年之前某时间的秒数

*其它说明:无

*当前版本:V1.0

*作 者:Zhou Zhaoxiong

*完成日期:20150211

**********************************************************************/

#include

#include

#include

typedef unsigned short int UINT16;

typedef signed int INT32;

typedef unsigned int UINT32;

UINT32 GetSecNumBetweenTwoYear(UINT16 iFirstYear, UINT16 iSecondYear);

INT32 main();

/*********************************************************************

*功能描述:主函数

*输入参数:无

*输出参数:无

*返 回 值:无

*其它说明:无

*修改日期 版本号 修改人 修改内容

*-------------------------------------------------------------------

*20150211 V1.0 Zhou Zhaoxiong 创建

*********************************************************************/

INT32 main()

{

UINT32 iYearBefore1970 = 0;

UINT32 iSecondsTo1970 = 0;

UINT32 iTotalSeconds = 0;

// 先输入一个1970年之前的年份

printf("Please input a year before 1970: \n");

scanf("%d", &iYearBefore1970);

if (iYearBefore1970 >= 1970) // 确保输入时间小于1970

{

printf("The year %d isn't less than 1970, please check!\n", iYearBefore1970);

return -1;

}

// 计算输入年份到1970年的秒数

iSecondsTo1970 = GetSecNumBetweenTwoYear(iYearBefore1970, 1970);

printf("The total seconds from %d to 1970 is: %u\n", iYearBefore1970, iSecondsTo1970);

// 计算总的秒数

iTotalSeconds = (UINT32)(time(0) + (time_t)iSecondsTo1970);

printf("The total seconds from %d to now is: %u\n", iYearBefore1970, iTotalSeconds);

return 0; // main函数返回0

}

/**********************************************************************

*功能描述: 计算任意两年之间的秒数

*输入参数: iFirstYear-减数

iSecondYear-被减数

*输出参数: 无

*返 回 值: 秒数

*其它说明: 无

*修改日期 版本号 修改人 修改内容

*--------------------------------------------------------------------

*20150211 V1.0 Zhou Zhaoxiong 创建

*********************************************************************/

UINT32 GetSecNumBetweenTwoYear(UINT16 iFirstYear, UINT16 iSecondYear)

{

UINT32 iTotalDays = 0; // 两年之间的总天数

UINT16 iTmpYear = 0; // 用作临时存放中间数据

// 输入参数检查, 保证减数小于被减数

if (iFirstYear > iSecondYear)

{

iTmpYear = iFirstYear;

iFirstYear = iSecondYear;

iSecondYear = iTmpYear;

}

// 计算总天数

iTotalDays = 0;

for (iTmpYear = iFirstYear; iTmpYear < iSecondYear; iTmpYear ++)

{

// 判断该年天数:1-能被4整除,但不能被100整除的是闰年; 2-能被400整除的是闰年

if ((0 == (iTmpYear%4) && 0 != (iTmpYear%100)) ||

0 == (iTmpYear%400))

{

iTotalDays += 366; // 闰年

}

else

{

iTotalDays += 365; // 平年

}

}

return iTotalDays * 86400; // 总的秒数

}

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

你可能感兴趣的文章
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
zoom和transform:scale的区别
查看>>
幸福框架:可扩展的、动态的、万能的 编号生成器
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
HDU 1402 A * B Problem Plus FFT
查看>>
[CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>