hun*_*ter 94
这是我用来完成的两个扩展.
/// <summary>
/// Gets the 12:00:00 instance of a DateTime
/// </summary>
public static DateTime AbsoluteStart(this DateTime dateTime)
{
return dateTime.Date;
}
/// <summary>
/// Gets the 11:59:59 instance of a DateTime
/// </summary>
public static DateTime AbsoluteEnd(this DateTime dateTime)
{
return AbsoluteStart(dateTime).AddDays(1).AddTicks(-1);
}
Run Code Online (Sandbox Code Playgroud)
这允许你写:
DateTime.Now.AbsoluteEnd() || DateTime.Now.AbsoluteStart()
Run Code Online (Sandbox Code Playgroud)
要么
DateTime partyTime = new DateTime(1999, 12, 31);
Console.WriteLine("Start := " + partyTime.AbsoluteStart().ToString());
Console.WriteLine("End := " + partyTime.AbsoluteEnd().ToString());
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 12
我使用以下内容:
DateTime now = DateTime.Now;
DateTime startOfDay = now.Date;
DateTime endOfDay = startOfDay.AddDays(1);
Run Code Online (Sandbox Code Playgroud)
并使用< endOfDay而不是<= endOfDay.这意味着无论精度是分钟,秒,毫秒,刻度还是其他,它都能工作.这将防止我们在StackOverflow上遇到的错误(尽管建议被忽略).
请注意,DateTime.Now如果您想要同一天的开始和结束,则只需拨打一次即可.
Dan*_*son 10
尝试
//midnight this morning
DateTime timeMin = DateTime.Now.Date;
//one tick before midnight tonight
DateTime timeMax = DateTime.Now.Date.AddDays(1).AddTicks(-1)
Run Code Online (Sandbox Code Playgroud)
如果您使用它进行过滤,正如您的评论所示,将DateTime.Now保存到变量中可能是个好主意,以防两个调用之间的日期结束.非常不可能,但称它足够多次,它将不可避免地发生在一天(相当晚上).
DateTime currentDateTime = DateTime.Now;
DateTime timeMin = currentDateTime.Date;
DateTime timeMax = currentDateTime.Date.AddDays(1).AddTicks(-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35193 次 |
| 最近记录: |