我在 flex 中有一个带有可编辑 =“true”的日期字段。当我输入:20-1-69 并转到另一个字段时,它会变为 20-01-2069。但我不希望它变成2069。是否可以关闭这个自动更改的东西?
谢谢, JSMB
过去,当字节昂贵时,聪明的程序员使用两位数来存储日期。因此,60 被解释为 1960,一切都很好。
直到可怕的 2000 年临近,人们才开始恐慌,因为计算机肯定会停止工作,我们都会死去,或者至少会被切断互联网,这可能更糟。
所以聪明的程序员被召唤来解决这个问题。
真正聪明的程序员将位数扩展到 4。但是自称聪明的程序员使用滑动窗口。70 到 99 被解释为 1970-1999,0 到 69 被解释为 2000 到 2069。这当然解决了 Y2K 问题。但正如你所发现的,我们有一个 2070 问题。
有趣的是,使用这个方案,像我这样的老人在未来出生。这让我们再次感到年轻。所以他们可能是故意这样做的。
使用 DateValidator 强制执行 4 位数年份?如果您要输入旧日期,无论您拥有什么 SDK,这几乎都是一项要求。即使您想出一些方法来完成这项工作,一些用户也会出现并感到困惑。
您需要确定希望两位数日期在 1900 和 2000 之间截断的位置,然后对输入执行一些魔术。
示例:截止日期是 1940 年
(伪代码)
If twoDigitYear > 40
fourDigitYear = "19" + twoDigitYear
Else
fourDigitYear = "20" + twoDigitYear
这将为您提供从 1941 年到 2040 年的年份。