确定新日期是否为默认的新DateTime()
本文关键字:DateTime 默认 日期 新日期 是否 | 更新日期: 2023-09-27 18:01:09
这是我的问题:
DateTime previousDate = new DateTime();
DateTime currentDate = new DateTime();
foreach (ApproverVo approver in approvers)
{
if (previousDate != null)
{
currentDate = (DateTime)approver.ApprovalDate;
totalTimeSpan += (currentDate - previousDate).TotalDays;
previousDate = currentDate;
} else
previousDate = (DateTime)approver.ApprovalDate;
}
当在开头声明上一个日期时,它包含DateTime((的默认值。我想做的是弄清楚上一个日期是否分配了正确的日期。
请提供建议,谢谢
假设您的批准日期没有等于DateTime.MinValue
:的值
DateTime previousDate = DateTime.MinValue;
DateTime currentDate = new DateTime();
foreach (ApproverVo approver in approvers)
{
if (previousDate != DateTime.MinValue)
{
currentDate = (DateTime)approver.ApprovalDate;
totalTimeSpan += (currentDate - previousDate).TotalDays;
previousDate = currentDate;
} else
previousDate = (DateTime)approver.ApprovalDate;
}
更新
根据@mdmullinax的回答,上面的代码与类似
DateTime previousDate = new DateTime();
DateTime currentDate = new DateTime();
foreach (ApproverVo approver in approvers)
{
if (previousDate != new DateTime())
{
currentDate = (DateTime)approver.ApprovalDate;
totalTimeSpan += (currentDate - previousDate).TotalDays;
previousDate = currentDate;
} else
previousDate = (DateTime)approver.ApprovalDate;
}
检查之后的previousDate == DateTime.MinValue
DateTime previousDate = new DateTime();
相当于
DateTime previousDate = DateTime.MinValue;
来自MSDN DateTime Structure文档:
DateTime dat1 = new DateTime();
// The following method call displays 1/1/0001 12:00:00 AM.
Console.WriteLine(dat1.ToString(System.Globalization.CultureInfo.InvariantCulture));
// The following method call displays True.
Console.WriteLine(dat1.Equals(DateTime.MinValue));