当前位置:淘百问>百科问答>关于C语言的时间函数

关于C语言的时间函数

2023-08-24 03:02:03 编辑:join 浏览量:573

关于C语言的时间函数

思路:一般做法都是用指定的时间去和一个固定时间来比较,得出此时间与固定时间所差的天数,一般固定时间都使用“1900-01-01”,比如d1与固定时间的差为Num1天,d2与固定时间的差为Nmu2天,那么d1、d2的天数差就是Num1与Num2间的差值了。最好不要直接用d1和d2来比较,因为不好确定他们之间有多少个闰年、大小月等。

以下代码是我从其它程序中摘出来的,大体上能满足你的需求(使用的中文编程,细节自己修改)

#include

#include

typedef unsigned char UNBYTE;

typedef unsigned short UNWORD;

typedef unsigned long UNLONG;

typedef unsigned long DATETIME;

/** 从 0001-01-01 到 1899-12-31 间的天数,故0日期是从1900-01-01开始的 */

const UNLONG n日期开始 = 693594;

/** 时间的转换系数*/

const UNBYTE n每天时数 = 24;

const UNBYTE n每时分数 = 60;

const UNBYTE n每分秒数 = 60;

const UNWORD n每时秒数 = n每分秒数 * n每时分数;

const UNLONG n每天秒数 = n每天时数 * n每时秒数;

typedef enum

{

TRUE = 0x5A,

FALSE = 0

}UBBOOL;

typedef struct

{

UNBYTE ub_年;

UNBYTE ub_月;

UNBYTE ub_日;

UNBYTE ub_时;

UNBYTE ub_分;

UNBYTE ub_秒;

UNBYTE ub_百分秒;

UNBYTE ub_备用;

}S日历时钟; /**8 byte*/

UNBYTE ub_每月天数 =

{

{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}

};

UNBYTE 润年判断(const UNBYTE lub_年)

{

if( (lub_年 % 4 == 0) && ((lub_年 % 100 != 0) || (lub_年 % 400 == 0)) )

return 1;

else

return 0;

};

UBBOOL 转换日期(UNBYTE lub_年, UNBYTE lub_月,UNBYTE lub_日, DATETIME &lub_日期)

{

UNBYTE lub_日表序号 = 0;

UNWORD luw_年;

int i;

/**根据是否为润年取日表的序号*/

luw_年 = 2000 + lub_年;

lub_日表序号 = 润年判断(luw_年);

lub_日期 = lub_日;

if ( (luw_年 >= 2000)

&& (luw_年 = 1)

&& (lub_月 = 1)

&& (lub_日

标签:C语言,函数

版权声明:文章由 淘百问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.taobaiwen.com/answer/312167.html
热门文章