当前位置: 首页 > news >正文

C语言常用标准库 -- 5.<time.h>

目录

引言

5. C标准库--time.h

5.1 简介

5.2 常量与宏

5.3 库变量

5.4 库宏

5.5 库函数

5.6 注意事项


🌈你好呀!我是 程序猿

🌌 2024感谢你的陪伴与支持 ~

🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!


引言

        C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。

        C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

        C 标准库(C Standard Library)包含了一组头文件,这些头文件提供了许多函数和宏,用于处理输入输出、字符串操作、数学计算、内存管理等常见编程任务。

5. C标准库--time.h

5.1 简介

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

<time.h> 是 C 标准库中的一个头文件,提供了处理和操作日期和时间的函数和类型。这个头文件中的函数用于获取当前时间、设置时间、格式化时间和计算时间差等。

      通过理解和使用 <time.h> 提供的函数,可以方便地进行时间和日期的操作,从而编写更加功能丰富和高效的 C 程序。

5.2 常量与宏

<time.h> 中的常量与宏
N0.变量 & 描述说明
1CLOCKS_PER_SEC每秒的时钟周期数。
2NULL空指针常量。
3TIME_UTC表示 UTC 时间(C11)。

5.3 库变量

<time.h> 中定义的变量类型
N0.变量 & 描述
1size_t
是无符号整数类型,它是 sizeof 关键字的结果。
2clock_t
这是一个适合存储处理器时间的类型。
3time_t is
这是一个适合存储日历时间的类型。
4struct 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 到 1             */
   int tm_year;        /* 自 1900 年起的年数            */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6  */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365*/
   int tm_isdst;       /* 夏令时                        */
};

5.4 库宏

<time.h> 中定义的宏
N0.宏 & 描述
1NULL
这个宏是一个空指针常量的值。
2CLOCKS_PER_SEC
这个宏表示每秒的处理器时钟个数。

5.5 库函数

<time.h> 中定义的库函数
N0.函数 & 描述
1char *asctime(const struct tm *timeptr)
返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。
2clock_t clock(void)
返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。
3char *ctime(const time_t *timer)
返回一个表示当地时间的字符串,当地时间是基于参数 timer。
4double difftime(time_t time1, time_t time2)
返回 time1 和 time2 之间相差的秒数 (time1-time2)。
5struct tm *gmtime(const time_t *timer)
timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
6struct tm *localtime(const time_t *timer)
timer 的值被分解为 tm 结构,并用本地时区表示。
7time_t mktime(struct tm *timeptr)
把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。
8size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。
9time_t time(time_t *timer)
计算当前日历时间,并把它编码成 time_t 格式。
10int timespec_get(struct timespec *ts, int base);
获取当前时间(C11)。

5.6 注意事项

  1. 使用 localtime 和 gmtime 时,返回的指针指向的 struct tm 结构是静态存储的,每次调用会覆盖之前的内容。
  2. 使用 mktime 函数时,必须确保 struct tm 中的各个字段是合法的。
  3. 使用 strftime 函数进行时间格式化时,要确保目标缓冲区足够大,以避免缓冲区溢出。

  ​期待批评指正,共同进步~

相关文章:

  • 【RockyLinux 9.4】安装新版 QQ for Linux(不再是 QQ2008 那种老款了!)
  • Skywalking告警配置
  • 从HarmonyOS Next导出手机照片
  • 开源 AI 智能名片 O2O 商城小程序与抖音:品牌传播的新机遇与挑战
  • Linux-TCP重传
  • Web自动化中常用XPath定位方式
  • 图解C#高级教程(三):泛型
  • 检查jar冲突,查找存在相同class的jar
  • Java面试题之JVM面试题
  • 系统架构设计师论文《论SOA在企业集成架构设计中的应用》精选试读
  • 自己做个国庆75周年头像生成器
  • DRF实操——项目部署
  • 大模型增量训练--基于transformer制作一个大模型聊天机器人
  • ftdi_sio驱动学习笔记 8 - 增加MPSSE SPI
  • leetcode每日一题day14(24.9.24)——字符串最多的子序列
  • git commit -am 仅提交已修改文件
  • 【Golang】Go语言字符串处理库--strings
  • NAND Flash虚拟层坏块管理机制
  • 如何选择适合的AI训练数据集进行人工智能训练
  • 计算机基础知识
  • 中华人民共和国和俄罗斯联邦关于进一步加强合作维护国际法权威的联合声明
  • 股价两天涨超30%,中航成飞:不存在应披露而未披露的重大事项
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 深入贯彻中央八项规定精神学习教育中央第六指导组指导督导中国工商银行见面会召开
  • 过半中国上市公司去年都在“扩编”,哪些公司人效最高