免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5544 | 回复: 14
打印 上一主题 下一主题

如何写一个日期合法性检查的函数呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-04 18:03 |只看该作者 |倒序浏览
我现在接收第三方接口传来的日期字段,但是遗憾的是经常传过来错误的日期,如果不做检查就会造成我后面业务逻辑的错误。
比如对方传给我 20101131 这样的日期,所以我想写一个公共函数,将所有的日期字段做一个检查,因为经常运行,需要高效才行。请教一下高手,这个函数应该如何去写?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2010-12-04 18:09 |只看该作者
是不是有个strptime的函数?应该可以用吧

论坛徽章:
0
3 [报告]
发表于 2010-12-04 19:21 |只看该作者
这个函数不行。我输入 20081280 他的返回值都不是NULL。

论坛徽章:
0
4 [报告]
发表于 2010-12-04 19:26 |只看该作者
不行就做个字符串的检查函数吧,也不难

论坛徽章:
0
5 [报告]
发表于 2010-12-04 19:39 |只看该作者
怎么做呢? 要求的是效率要高。最好是有库函数或者是系统调用可以用。

论坛徽章:
1
技术图书徽章
日期:2014-07-11 16:30:58
6 [报告]
发表于 2010-12-04 20:12 |只看该作者
怎么做呢? 要求的是效率要高。最好是有库函数或者是系统调用可以用。
Advanceer 发表于 2010-12-04 19:39



    建议你看看c 正则使用 类是于数据库的  to_date("20120101 01:00:00","YYYYMMDD hs24:mm::ss");
进行处理希望能帮助你。

论坛徽章:
0
7 [报告]
发表于 2010-12-04 20:33 |只看该作者
研究了半天,还是没想到怎么做,特别是对2月份的处理。

论坛徽章:
0
8 [报告]
发表于 2010-12-04 20:33 |只看该作者
楼主需要正则。比如我这个比较简单的。。。没做什么细化。随手写的。。。

([0-9]{4})(0[0-9]\|1[0-2])(0[0-9]\|1[0-9]\|2[0-9]\|3[0-1])

论坛徽章:
0
9 [报告]
发表于 2010-12-04 20:46 |只看该作者
如何使用正则表达式呢? 在SHELL中我经常使用,C中还不怎么怎么用呢,呵呵。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
10 [报告]
发表于 2010-12-04 23:32 |只看该作者
回复 9# Advanceer


    pcre or /usr/include/regex.h
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP