计算两个DateTimes之间的天数
本文关键字:之间 DateTimes 两个 计算 | 更新日期: 2023-09-27 18:19:19
我有一个开始日期时间和一个结束日期时间,需要计算两者之间的夜(不是天)的数量,默认/最小值为1。
我有
int NumberOfDays = Convert.ToInt32((EndDateTime - StartDateTime).Days)
返回总超过1的天数。我不确定从结果中减去1是一个合适的解决方案。
我也试过
int NumberOfDays = Convert.ToInt32((EndDateTime - StartDateTime).ToDays)
返回相同的结果。
除了每次减去1并确保它永远不会返回0之外,有没有更聪明的解决方案?
您可以使用扩展方法使其在任何地方简单地重用。
public static class DateTimeExtensions
{
public static int NumberOfNights(this DateTime date1, DateTime date2)
{
//feel free to make here better
var frm = date1 < date2 ? date1 : date2;
var to = date1 < date2 ? date2 : date1;
var totalDays = (int)(to-frm).TotalDays;
return totalDays > 1 ? totalDays : 1;
}
}
像
一样使用var to = DateTime.Now.AddDays(3);
var frm = DateTime.Now;
frm.NumberOfNights(to)