我创建了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();
我正在通过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
以及如何比较两个日期时间,我也知道如何根据结果设置响应。
我面临的问题是检查时间跨度
任何帮助都将受到高度赞赏。
答案 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";