我试图用C#代表公司的成立日期。我偶尔会有一整天,一个月和一年,但更多时候我只有一个月和一年,有时只有一年。
有没有办法可以在NodaTime中表示这一点,以便在它们之间进行比较?即2012 < June 2013 == true
,但2013 < June 2013 == false
,因为它是同一年。
我还需要能够明确地检索存储的数据。我的意思是,我无法将2013
存储为1/1/2013
因为我无法检索我只知道日期为2013
的信息。
答案 0 :(得分:2)
回答问题:不,没有Noda Time类型可以用来直接代表&#34; year&#34;或&#34;年和月&#34;。
(嗯,为了完整性,我应该注意你可能可能使用Period
,但我认为使用日历持续时间来表示日期会有点混乱,有些滥用Period
意图使用的内容。)
如果我自己这样做,我可能会创建一种类型,将Noda Time LocalDate
(存储&#34; 2013年&#34; as 2013-01-01)与记录日期的哪些部分有效的枚举(即Year
,YearMonth
或YearMonthDay
),然后实施IComparer<MyPartialLocalDate>
以根据需要订购日期(通过委派到LocalDate
,然后使用枚举打破关系,可能)。