开发者请注意闰年问题

徐宁 · 2016-02-29
2月29日并不是唯一受到闰年影响的日子,12月31日也是。

2016年是闰年,C或者C++开发者可能会遇到一些问题,微软近期发表了一篇技术博客,提醒开发者为2016年闰年可能产生的问题做好准备。

高级软件工程师Matt Johnson 在文章中提及,开发人员需要注意以下三方面的问题:

  • 日期问题,特别是那些使用日期范围查询的数据筛选。

  • 在用户界面中意外或者不希望出现的行为。

  • 潜在的异常、崩溃或者遇到边缘情况下的挂起。

Johnson强调,无论开发者的代码是否运行在云端,单元测试在很多情况下可能都并不充分。他提醒开发人员,2012年Azure就曾出现过和闰年相关的故障。

“闰年的问题可能会在任何地方、在任何语言中出现,但是在C/C++代码中是最危险的,因为它们可能会导致应用程序崩溃,或者缓冲区溢出(这是一个安全风险)。”他表示,在C/C++中涉及到增加或减少年数的代码以及表示每年中的每一天的数列的代码都容易出现闰年的问题。

此外,Johnson还提醒开发人员,2月29日并不是唯一受到闰年影响的日子。12月31日,也就是当年的第366天,也可能会受到影响。他建议,开发人员需要仔细检查他们的代码;了解如何在单元测试中“欺骗时钟”;并且不能局限于闰年之间的情况,还需要对全年进行测试。

+1

好文章,需要你的鼓励

参与评论
登录后才能参与讨论哦...
后参与讨论
提交评论0/1000

请回复有价值的信息,无意义的评论将很快被删除,账号将被禁止发言。

下一篇

必须有一个可持续、健康的现金流,在达到一定流量以后有一个有利的盈利模式。

2016-02-29

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

为你推送和解读最前沿、最有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚集全球最优秀的创业者,项目融资率接近97%,领跑行业