我正在使用 SQL Server 数据库编写一个 C# 程序,但我无法从所有建议的处理负日期和正日期的解决方案中进行选择。实际上,以下是我找到的解决方案:
- 使用 bool 值来表示 BC 或 AC;
- 将日期组成部分(jj、mm、(-)aaaa)存储为 int 并创建一个处理验证以查看日期是否存在的类。
我确信还有其他类型的方法,但这些实际上对我来说是最容易理解的方法。
该软件用于帮助角色书的生日和书中的其他角色事件。所以说这本书的开始日期是“10/01/0023”(jj/mm/aaaa),这是人物所处时代的开始,而人物当时已经80岁了,他出生了“02/03/-0057”。
我的问题集中在上述两种解决方案中哪一种在这种情况下最有效。我已经阅读了与我相关的内容,但我不太明白,例如,该软件如何处理从年长到年轻的字符排序,并验证出生日期不晚于死亡日期,这没有任何意义...
我希望这能澄清我的问题?
我真诚地感谢所有花时间阅读本文的人。
最佳答案
然后我建议您将日期存储为 ISO 格式的数字:YYYYMMDD
这样您就可以将 BC 日期存储为 -YYYYMMDD,将 AD 存储为 YYYYMMDD。它还可以轻松比较日期:
例如。if ( -00801012 < 00110214 ) { ... }
或者
if ( 19741015 < 20140228 ) { ... }
当您想在屏幕上显示日期时,您需要断言该信号。
boolean isAD = false;
If ( mydate > 0 ) { isAD = true; }
你可以使用abs来格式化你的日期
关于c# - C# 和 sql 中的负日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248280/