日期时间精度/准确度

时间:2015-05-13 03:34:20

标签: c# .net date datetime precision

我想用不同的精度(准确度)来表示日期。理想情况下,我可以使用DateTime数据类型来存储日期信息,尽管它没有精确设置。例如,我的日期为“2015年1月1日”,但根据其精确度,它将被理解为:

  • 确切日期:2015年1月1日
  • 仅限月份和年份:2015年1月
  • 仅限年份:2015

UI格式化和业务逻辑都需要精度,因此我不喜欢使用DateTimeFormatInfo或其他附带的.NET开箱即用格式选项 - 它们有不同的用途。

因此,我自己的解决方案基本上是一个枚举......

public enum DateTimePrecision
{
    DayMonthYear = 0,
    MonthYear,
    Year,
    ...
}

...与日期(结构或类)一致......

public class MySuperDupaAwesomeDateTime
{
    public DateTime Date { get; set; }
    public DateTimePrecision Precision { get; set; }
}

或者,我当然可以构建自己的自定义 DateTime

无论如何,这就像重新发明一些感觉如此普遍并且必须已经存在的东西。任何人都可以考虑改进上述方法或了解.NET Framework功能吗?我不是在寻找一个库或任何东西,而是一个直接来自.NET的解决方案。

1 个答案:

答案 0 :(得分:-2)

DateTime具有一些整数的MonthYear标识符。使用它们并将其格式化为String

如果您需要的准确度高于一天,DateTime还有其他SecondMinuteHour s,Millisecond s的标识符...检查自己的属性!

获得它们的整数值后,您甚至可以开始计算以获得某些内容的完成时间(通过获取DateTime并在启动和获取时将其设置为Now另一个DateTime并在Now结束后设置name of second object.Subtract( name of the first object ),然后使用.Add()sender.input.after($openButton); )!