程序中时间的表示及时间函数的的选择

本文探讨了程序中不同层次的时间表示,包括绝对时间、系统时间、进程时间及用户自定义时间,并详细分析了Windows和Linux下的高精度时间获取函数。介绍了ctime、gmtime、localtime、mktime等函数的用途和线程安全性,同时讨论了clock()和times()函数在多线程环境下的应用。文章还提到了时间表示的溢出问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间系统一般在程序中有以下几个层次:

1. 绝对时间

2. 本机系统时间

3. 本进程运行时间

4. 用户自定义的时间(差分系统时间)


根据不同的精度需求一般又分为:

1. 日历时间

2. 高精度时间


根据场景不同,又可分为:

1. 单系统,单线程

2. 单系统,多线程(多进程)

3. 跨系统,多线程(多进程)


linux系统与windows系统又略有不同,这里总结下最近对时间系统的理解。


日历时间,往往以年,月,日,时,分,秒的格式出现,这是对精度要求不高的时间需求。


在windows API中,获取时间的函数:

CTime::GetCurrentTime();

GetLocalTime(&st);


linux下,用time_t数据类型来保存,是自1970年1月1日00:00:00以来国际标准时间所经过的描述累计值。

time_t 一般是一个long型来表示,单位是秒

而struct tm是一个结果 以年,月,日,时,分,秒等表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值