WEB API如何将日期时间与额外的时间跨度进行比较

时间:2017-10-22 09:57:12

标签: c# linq datetime asp.net-web-api2 datetime-comparison

我创建了WEB API,其中我发送了serial numberdate time。结果它给了我最后/最新的记录值。

我做了什么

以下是我的控制器代码

 var dateTime = dt.ToString(); // dt is the user sent date time
 var result = medEntitites.tj_xhqd.Where(m => m.zdjh == msn) // msn is the serial number 
                                             .OrderByDescending(o => o.sjsj)
                                             .Select(s => s.sjsj)//sjsj is datetime in DB
                                             .First().ToString();  

我正在通过API测试Postman。我发送的日期时间为T格式,如2017-10-22T13:30:20,控制器日期时间为10/22/2017 1:30:20 PM

作为回复result获取最后/最新记录的日期时间10/21/2017 6:15:08 PM

API网址: http://localhost:14909/api/meters/GetByMsn/002999000536/2017-10-22T13:30:20

我想做什么?

现在我想将user sent日期时间与resulted日期时间进行比较,结果日期时间是在用户发送日期时间的10 minutes时间范围内,考虑到日期相同,即如果结果日期时间在当前日期时间的10分钟时间范围内,那么它将发送YES其他明智的回复NO

我知道什么?

我知道如何add or subtract minutes以及如何比较两个日期时间,我也知道如何根据结果设置响应。

我面临的问题是检查时间跨度

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

这是一种以分钟为单位检查时差的简单方法。

DateTime userSent = new DateTime(2017, 10, 22, 13, 20, 20);
DateTime result = new DateTime(2017, 10, 22, 18, 15, 08);

double diffInMinutes = Math.Abs((result - userSent).TotalMinutes); // can be negative

if(diffInMinutes <= 10)
    return "Yes";
else
    return "No";