有没有办法在Noda Time中表示部分日期?

时间:2014-05-15 11:54:14

标签: c# date precision nodatime

我试图用C#代表公司的成立日期。我偶尔会有一整天,一个月和一年,但更多时候我只有一个月和一年,有时只有一年。

有没有办法可以在NodaTime中表示这一点,以便在它们之间进行比较?即2012 < June 2013 == true,但2013 < June 2013 == false,因为它是同一年。

我还需要能够明确地检索存储的数据。我的意思是,我无法将2013存储为1/1/2013因为我无法检索我只知道日期为2013的信息。

1 个答案:

答案 0 :(得分:2)

回答问题:不,没有Noda Time类型可以用来直接代表&#34; year&#34;或&#34;年和月&#34;。

(嗯,为了完整性,我应该注意你可能可能使用Period,但我认为使用日历持续时间来表示日期会有点混乱,有些滥用Period意图使用的内容。)

如果我自己这样做,我可能会创建一种类型,将Noda Time LocalDate(存储&#34; 2013年&#34; as 2013-01-01)与记录日期的哪些部分有效的枚举(即YearYearMonthYearMonthDay),然后实施IComparer<MyPartialLocalDate>以根据需要订购日期(通过委派到LocalDate,然后使用枚举打破关系,可能)。