检查 string 类型的日期和时间是否合法的函数。

本文介绍了一种在Linux环境下验证日期和时间是否合法的方法。对于日期的验证较为复杂,需考虑大小月和平闰年;时间的验证则相对简单。文中提供了具体的C++代码实现,并分别对日期和时间进行了有效性检查。

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

Linux平台下开发一个软件,要做一个检查日期和时间是否合法功能:如 20091333。

 

1.  找到关于日期合法性验证的函数,其思路及代码实现如下:

 

对日期时间进行合法性验证,通过后再设置本机日期时间。时间的合法性检查比较简单,而日期就复杂一些,需要考虑大小月,闰年。

思路是:先对年月日进行简单的范围检查,之后将其形成一个tm结构,再调用mktime将该tm转换为一个time_t,在此过程中mktime将对不合法的日期自动进行规范化,如输入为2007-6-31将被转化为2007-7-1。因此比较转换前后的年月日是否相同就能知道日期是否合法。为了便于比较,再调用localtime将time_t转化为tm进行比较。根据比较结果来验证日期是否合法。

文章出处:http://www.diybl.com/course/3_program/c++/cppsl/2008126/97446.html
本人对日期合法性的验证实现方法做了部分修改,以适应string类型的日期。

 

 

 

 

2.  自己实现的对时间进行合法性验证的函数。

     代码如下:

 

    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值