我正在尝试比较DateTimeOffset类型。我正在检查开始日期是否不大于结束日期,但即使开始日期不大于结束日期,它也会失败。
我调试了这个抛出异常的代码。起始值为2013年8月29日,结束日期为9/1/2014。
示例代码:>
public IEnumerable<RecruitingPerformance> GetDailyRecruitingPerformance(DateTimeOffset start, DateTimeOffset end, int? userId, int? projectId)
{
if (end > DateTimeOffset.UtcNow)
{
throw new ArgumentException("End date must be today or before.", "end");
}
if (start > end)
{
throw new ArgumentException("Date must be greater than or equal to start", "end");
}
故障点图片:&gt;
以下是非信徒的两个对象的图片:
答案 0 :(得分:1)
为什么不使用DateTimeOffset.Compare()方法?
DateTimeOffset start = new DateTimeOffset(2013, 8, 29, 12, 0, 0, new TimeSpan(-5, 0, 0));
DateTimeOffset end = new DateTimeOffset(2014, 9, 1, 12, 0, 0, new TimeSpan(-5, 0, 0));
// if compare brings back 1, start is greater than end
if(DateTimeOffset.Compare(start, end) > 0)
throw new ArgumentException("Date must be greater than or equal to start", "end");