今天聊一下C语言 | 每日基础(78)

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:怎样才能进行反向操作, 把 struct tm 或一个字符串转换成 time_t?

阿一:ANSI C 提供了库函数 mktime(), 它把 struct tm 转换成 time t。把一个字符串转换成 time_t 比较难些, 这是由于可能遇到各种各样的日期和时间格式。某些系统提供函数 strptime(), 基本上是 strftime() 的反向函数。其它 常用的函数有 partime() (与 RCS 包一起被广泛的发布) 和 getdate()。

读者:怎样在日期上加 N 天?怎样取得两个日期的时间间隔?

阿一:ANSI/ISO 标准 C 函数 mktime() 和 difftime() 对这两个问题提供了一些有限 的支持。mktime() 接受没有规格化的日期, 所以可以用一个日期的 struct tm 结 构, 直接在 tm mday 域进行加或减, 然后调用 mktime() 对年、月、日域进行规格 化, 同时也转换成了 time t 值。可以用 mktime() 来计算两个日期的 time t 值, 然 后用 difftime() 计算两个 time t 值的秒数差分。

有时候,正是那些意想不到之人,成就了无人能成之事。

正文完