我为 Windows 10 修复了一个 bug
|
问题正是在于此,写这段代码的人以为代码会按预料中执行:
逐一运行后如下:
常见情况下的确如此。 但问题在于:“如果起始日期为某月的第 31 天,结束日期所在的月份只有 30 天,该以哪天作为结束的标志?”对于 Windows.Globalization.Calendar.AddMonths(Int32) 来说,它的答案显然是“在第 30 天”。 具体而言,这就意味着: “July 31st + 4 Months = November 30th” 然而实际情况是: “July 31st + 5 Months = December 31st” 这就引起了“差一错误”。逐步调用 接着 Peter 在 Windows 计算器的 GitHub 仓库提交了一个 PR 以进行最小化“修复”。
Peter 为修复加上了引号,是因为它最后计算出的结果如下:
Peter 表示,如果各位认可“7月31日+ 4个月= 11月30日”这样的结果,他认为这在技术上是正确的。虽然完整的结果不符合大众对日期间隔天数的阅读习惯,但至少不会出错。 不过这件事中,最令人深刻的是微软最后合并了 Peter 提交的 PR 以修复这个问题。
这说明微软的开源项目不仅仅是将代码托管在 GitHub 而已,而是会听取来自社区用户的建议和改进。 那么问题来了,如果是你,你会怎样解决这个错误呢? 【编辑推荐】
点赞 0 (编辑:周口站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-7 – Windows 7的SyncToy替代方案 – 将文件夹与网
- 如何在Linux上一次性批量重命名一组文件?
- 微软发布Windows 10 KB5007253可挑更新
- windows-xp – 可以恢复Active Directory中的密码更改吗?
- Windows – Visual Studio 2015更新1 – 调试时没有IIS Exp
- powershell – 如何将vhd转换为wim文件?
- 此设备目前正在使用 - Windows 10上的USB错误
- Linux的10个最危险的命令
- windows-server-2003 – FreeBSD主机ZFS在Root上运行Virtua
- 5种方法修复蓝牙无法在Windows10中工作


