我正在使用.NET环境,并希望跟踪信用卡中的到期日期。有“MMYYYY”性质的日期。什么是推荐的存储方式?我应该只使用.NET字符串还是使用.NET DateTime对象?
答案 0 :(得分:2)
在几乎所有情况下,最简单的解决方案通常是最佳解决方案。它易于维护,易于其他程序员识别,甚至可以让您远离麻烦(整数和字符串可能导致本地化问题和无效值)。
System.DateTime
是最好的选择,并为您提供灵活性,这些卡可能也会在某一天到期(它们很少见,但确实存在,并且随着临时信用卡的流行而变得更加普遍) 。存储值时,只需使用Date
结构的System.DateTime
属性,因为这将忽略时间组件。
答案 1 :(得分:0)
将MM和YYYY存储为两个单独的整数值。
答案 2 :(得分:0)
对于你希望存储信用卡到期的情况,如果你这样定义你的结构,那就更好了。这可以确保不会发生无效值。
public enum MonthOfYear
{
Jan = 1,
Feb = 2,
...
}
public struct CardExpiration
{
public MonthOfYear Month;
public int Year;
}
但是,您可以使用DateTime使其更快。
答案 3 :(得分:0)
将结果存储为整数的另一种方法是:
VALUE = YYYY * 100 + MM
因此,对于2011年7月,您将拥有2011年10月的2011 * 100 + 07 = 201107,您将拥有201510和2014年12月,您将拥有201412.如果卡已过期或不太容易,这种方式可以进行比较,因为您只需要比较两个数字。