C语言的time函数获取时间参数_c语言中的time函数

C语言的time函数获取时间参数_c语言中的time函数

编码文章call10242025-02-20 14:18:0527A+A-

编程中经常用到时间表达及转换的函数,它们都定义在 time.h 库函数中。其中time函数可以得到当前日历时间或者设置日历时间。今天主要是以实际的例子介绍time函数。


1.时间相关基础知识

(1)世界标准时间Coordinated Universal Time(UTC):

协调世界时,又称世界标准时间,也即格林威治标准时间(Greenwich Mean Time,GMT),中国内地的时间与UTC得时差为+8,也即UTC+8,美国为UTC-5。

(2)日历时间:

日历时间,是用"从一个标准时间点到此时的时间经过的秒数"来表示的时间。标准时间点对不同编译器可能会不同,但对一个编译系统来说,标准时间是不变的。一般是表示距离UTC时间 1970-01-01 00:00:00的秒数。

(3)时间点:

时间点。在标准c/c++中是一个整数,用此时的时间和标准时间点相差的秒数(即日历时间)来表示。

(4)时钟计时单元:

时钟计时单元(而不叫做时钟滴答次数),一个时钟计时单元的时间长短是由cpu控制的,一个clock tick不是cpu的一个时钟周期,而是c/c++的一个基本计时单位。


2.time函数

(1)函数原型

函数原型: time_t time(time_t *timer)
(1)参数说明: timer=NULL时得到当前日历时间
(从1970-01-01 00:00:00到现在的秒数),
timer=时间数值时,用于设置日历时间,
time_t是一个unsigned long类型。
如果 timer不为空,则返回值也存储在变量 timer中。
(2)函数功能: 得到当前日历时间或者设置日历时间
(3)函数返回: 当前日历时

(2)time.h头文件

要使用time(),必须在程序中包含头文件。

(3)time.h 的定义

time.h 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。

4个变量
size_t  是无符号整数类型,它是 sizeof 关键字的结果。
clock_t  这是一个适合存储处理器时间的类型,类型为unsigned long
time_t  这是一个适合存储日历时间类型。
struct tm  这是一个用来保存时间和日期的结构。

tm 结构的定义如下:

struct tm
{
   int tm_sec;         /* 秒,范围从 0 到 59      */
   int tm_min;         /* 分,范围从 0 到 59      */
   int tm_hour;        /* 小时,范围从 0 到 23     */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31    */
   int tm_mon;         /* 月,范围从 0 到 11(注意)  */
   int tm_year;        /* 自 1900 年起的年数      */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6 */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365   */
   int tm_isdst;       /* 夏令时               */
};

两个宏

NULL  这个宏是一个空指针常量的值。
CLOCKS_PER_SEC  这个宏表示每秒的处理器时钟个数。
用于将clock()函数的结果转化为以秒为单位的量,
这个量的具体值是与操作系统相关的,通常为1000。

(4)time()函数使用示例

a.time()函数有两种使用方式:

 t1=time(NULL)或t1=time(0)

将空指针传递给time()函数,并将time()返回值赋给变量t1

b. time(&t2);

将变量t2的地址作为实参传递给time()函数,函数自动把结果传递给t2,不需要额外的赋值语句。


3.实例

程序

#include 


#include 


int main ()
{
    time_t sec,sec1,sec2;/*函数原型: time_t time(time_t *timer)*/


    sec = time(NULL);
    printf("自 1970-01-01 起的小时数 = %ld\n", sec/3600);
    printf("自 1970-01-01 起的天数 = %ld\n", (sec/3600)/24);
    printf("自 1970-01-01 起的年数 = %ld\n", (sec/3600)/24/365);


    sec1 =  time(0);
    printf("自 1970-01-01 起的小时数 = %ld\n", sec1/3600);
    printf("自 1970-01-01 起的天数 = %ld\n", (sec1/3600)/24);
    printf("自 1970-01-01 起的年数 = %ld\n", (sec1/3600)/24/365);


    time(&sec2);
  printf("自 1970-01-01 起的小时数 = %ld\n", sec2/3600);
    printf("自 1970-01-01 起的天数 = %ld\n", (sec2/3600)/24);
    printf("自 1970-01-01 起的年数 = %ld\n", (sec2/3600)/24/365); 


    getchar();
    return(0);
}

运行结果


4.参考内容

[1] C语言time()函数的用法-CSDN博客

[2] C 语言中的 time 函数总结 | 菜鸟教程

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4