我试图用C#代表公司成立的日期.我偶尔会有一整天,一个月和一年,但更多时候我只有一个月和一年,有时只有一年.
有没有一种方法可以在NodaTime中表示这种方式,以便在它们之间进行比较?即2012年< 2013年6月== true,但2013年< 2013年6月==假,因为它是同一年. 我还需要能够明确地检索存储的数据.我的意思是毫不含糊地说我不能将2013年存储为2013年1月1日,因为我无法检索我只知道2013年的日期信息.
最佳答案 要回答问题:不,没有Noda Time类型可以用来直接代表“年”或“年和月”的概念.
(嗯,为了完整起见,我应该注意你可能会使用Period,但我认为使用日历持续时间来表示日期会有点混乱,而且有些滥用了什么时期意味着使用.)
如果我自己这样做,我可能会创建一个聚合Noda Time LocalDate(将“2013年”存储为2013-01-01)的类型以及记录日期的哪些部分有效的枚举(即年份, YearMonth或YearMonthDay),然后实现IComparer< MyPartialLocalDate>根据需要订购日期(通过委托给LocalDate,然后使用枚举来破坏关系).