日期时间 - 凌晨3:00开始新的一天

Max*_*her 5 c# datetime

我有一个分析某个网站上用户行为的代码,它使用了许多DateTime功能.现在,我想开始新的一天,3:00 am而不是12:00 am默认情况下,但我真的不想改变代码的任何其他部分.

例如:说我DateTime喜欢2014-08-27t02:59:00和我一样AddMinutes(2),日期应该改为2014-08-28t03:01:00.

有没有办法在不改变其他功能的情况下设置"新的开始"?

fli*_*erg 1

对于BCL日期处理,我通读了 NodaTime 的文档,但也找不到任何内容。

在不太了解您的代码现在如何工作的情况下,我建议您采用以下任一想法;创建一个扩展方法来获取“正确”日期(在您的模型中)或根据您的目的创建一个新的日期类。

扩展方法:

public static class DateTimeExtension
{
  public static DateTime GetDay(this DateTime date)
  {
    return date.TimeOfDay > TimeSpan.FromHours(3) ? date.Date : date.AddDays(-1).Date;
  }
}
Run Code Online (Sandbox Code Playgroud)

或者创建您自己的类型,MyDateTime它按照您想要的方式工作。我不知道你到底需要什么,但是让所有“正常”DateTime方法正常工作需要大量的工作。