2011-10-04 2 views
3

If CreatedDate가 다음 1 시간 전 또는 그 전에 실행되면 If 문을 쓰고 싶습니다. 이것을 할 수있는 방법이 있습니까? 같은C# On 또는 Before DateTime

뭔가 :

if (CreatedOn.ToUniversalTime() <= DateTime.Now.AddHours(1).ToUniversalTime()) 
{ 
} 

는 바로겠습니까 또는 더 나은 방법은 무엇입니까?

감사합니다.

+7

대기 - * 향후 * * 최대 * 일 * 날짜가 생겼습니까? : D 귀하의 코드는 괜찮아 보인다. – Cameron

+0

나에게 맞는 것 같습니다. – slandau

+0

좋아 보인다. 물론 당신이 확실하지 않다면 방금 약간의 연주를했거나 ** 학습 테스트 **를 작성했다. -이게 옳은지 확인하는 것은 큰 일이 아니다;) – Carsten

답변

4

나는 당신의 접근 방식이 대부분 괜찮다고 생각합니다. 결국, 당신의 설명을 보면 :

서로 한 시간을 뺀 대해 얘기하지 않는

"는 CreatedDate 켜거나 다음 1시간 이전 인 경우"- 그것은 CreatedDate 비교에 대해 이야기 즉 다음 시간 즉 지금부터 한시간.

그래서 :

나에게 꽤 깨끗한 보이는
DateTime hourFromNowUtc = DateTime.UtcNow.AddHours(1); 
if (CreatedOn.UniversalTime() <= hourFromNowUtc) 

- 당신이 CreatedOn 정말 무엇을 알고 있어야 제외. 지역인가요? 불특정? 이미 보편적입니까? 불행히도 DateTime is problematic in this respect ... Noda Time을 사용하는 경우에는 의심의 여지가 없습니다.)

+0

감사합니다. 그게 내가 찾고 있던거야. 그리고 내가 그 질문에 어떻게 힘든 시간을주지 않았다고 생각합니다. :) –

+0

하! +1하는 (대부분) 당신이 일하는 프로젝트에 대해 뻔뻔한 홍보. 또한 실제로이 작업을 쉽게 처리 할 수 ​​있기 때문에. Dann'DateTime' ... – Zannjaminderson

+0

@ Zannjaminderson : 나는 내 저녁에 이슬람 달력을 구현하는 데 낭비하지 않았다는 것을 확실히 기대하고있다. :) –

-1

할 수있는 방법에는 몇 가지가 있습니다. 예를 들어 DateTime.Now - CreatedOnTimeSpan 값을 반환하며이 두 시간 사이의 시간 간격을 나타냅니다. 1 시간 이하로 비교할 수 있습니다.