0

我创建了一个WEB API,我在其中发送一个serial number和一个date 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();  

我正在测试APIvia Postman。我发送的日期时间T格式类似于2017-10-22T13:30:20控制器中的日期时间是10/22/2017 1:30:20 PM

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

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

我想做的事?

现在我想比较user sent日期时间和resulted日期时间,结果日期时间在10 minutes用户发送的日期时间的时间跨度内,考虑到日期是相同的,即如果结果日期时间在 10 分钟的时间跨度内当前日期时间,否则它将发送YES响应NO

我知道的?

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

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

任何帮助将不胜感激。

4

1 回答 1

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";
于 2017-10-22T10:10:25.510 回答