2017-10-10 1 views
1

'MySQL'을 사용하여 'WEB API'를 만들었습니다. 지금은 API의 URL에 serial numberdate time을 전달하고 예상되는 결과를 얻습니다. 이제 내가 원하는 것은 언제든지 요청이 전송 될 때입니다. 모든 기록은 10 minutes 안에 timespan으로 표시됩니다. 즉, 보낸 시간이 10/10/2017T3:15:00 인 경우 표시되는 데이터는 +5 및 -5 분, 즉 3:10:00에서 3:20:00 사이 인 경우 동일한 날짜 여야합니다.웹 API에서 LINQ 시간 빼기

시간을 뺄셈하려면 time.Subtract(...) 메서드를 사용할 수 있지만 실제로 시간을 빼고 더하고 결과를 얻는 방법을 모르겠습니다.

내 컨트롤러 코드는

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
    { 
     try 
     { 
      return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=>(m.zdjh == msn)).Where(m=> (m.sjsj >= dt)).Select(m=> new { m.zdjh , m.sjsj, m.xhqd }).Distinct()); 
     } 
     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
     } 
    } 

주처럼

가산 시간의 감산이 어떤 도움이 높게 평가 될 것이다 URL

에 보낸 날짜 시간에 따라 달라집니다.

답변

1

제공된 Date의 앞뒤에 항상 5 분이면 AddMinutes를 사용하여 추가/제거하십시오. 다음과 같은 내용 :

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
{ 
    try 
    {  
     var before = dt.AddMinutes(-5); 
     var after = dt.AddMinutes(5); 

     var result = medEntitites.tj_xhqd 
     .Where(m => 
      m.zdjh == msn && 
      m.sjsj >= before && 
      m.sjsj <= after) 
     .Select(m=> new { m.zdjh , m.sjsj, m.xhqd }).Distinct()); 

     return Request.CreateResponse(HttpStatusCode.Found, result); 
    } 
    catch (Exception ex) 
    { 
     return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
    } 
} 

참고 : 실제 응용 프로그램에서는 5 분을 하드 코딩하지 않습니다. 일반적으로이 값은 응용 프로그램의 구성에 따라 달라집니다. 그런 값을 하드 코딩하고 내일 요구 사항이 5 분에서 10 분으로 변경되면 앱을 컴파일하고 다시 배포해야합니다. 그래서 그걸 명심하십시오.

+0

이것은 매력처럼 작동합니다. 그래, 나는 알고있다. 그리고 나는 이미 다른 사람들과 이것을 논의했지만, 그들은 그것을 그렇게 계속 유지한다고 말했다. 그래서 다른 사람들이 나도 행복하다면 맞춰봐. – faisal1208

+0

개발자 수업 1 : 다른 사람을 신뢰하지 마라 :) – jpgrassi

+0

하하 ... 사실이야.하지만 다른 사람들은 나처럼있어.) – faisal1208