2011-05-06 7 views
0

은 xml 파일에 저장되어 stopDatestartDate 인 하나의 특정 날짜를 비교하려고합니다.C# datetime을 다른 두 날짜와 비교

if ((DateTime.Compare(periodTime, startDatePer1) == 1) 
    && (periodTime.CompareTo(stopDatePer1) == 1)) 
{ 
    // ... insert some data to databse     
} 
else if ((DateTime.Compare(periodTime, startDatePer2) == 1) 
     && (periodTime.CompareTo(stopDatePer2) == 1)) 
{ 
    // ..... insert data 
} 

내 문제가 periodDatestartDatestopDate 사이 인 경우에도 첫 번째 if에 붙어 그 메신저입니다 :

그래서 periodDate 경우 startDate 사이 StopDate 삽입 데이터입니다.

+0

'if (periodDate> = startDate && periodDate <= endDate) '의 잘못된 점은 무엇입니까? – Bobby

+0

왜 네가 붙어 있었 니? – V4Vendetta

답변

1

문제는 모두 DateTime.Compare(periodTime, startDatePer1) == 1periodTime.CompareTo(stopDatePer1) == 1>로 번역합니다.

두 번째를 -1로 변경하면 효과가 있습니다.

if (startDate < periodTime && periodTime < stopDate) { 
} 

이 더 명확하게 거짓말 기간 시간을 보여줍니다으로 사이의 startDate와 stopDate 즉의 startDate :하지만 당신은 단지

4

는 왜 :

if(periodDate > startDate && periodDate < stopDate) 
+0

감사합니다. – dumbel

1
if (periodTime >= startDatePer1 && periodTime <= startDatePer2) 
{ 
    // Then insert data 
} 
0

가장 읽을 수있는 형태가 <>를 사용 Compare 또는 CompareTo를 사용할 필요가 없습니다 < periodTime < stopDate

0

This 라이브러리는 바리오의 지원 클래스 TimeRange을 포함 우리 시간대 관계 :

// ---------------------------------------------------------------------- 
public void TimeRangeSample() 
{ 
    // --- time range 1 --- 
    TimeRange timeRange1 = new TimeRange(
    new DateTime(2011, 2, 22, 14, 0, 0), 
    new DateTime(2011, 2, 22, 18, 0, 0)); 
    Console.WriteLine("TimeRange1: " + timeRange1); 
    // > TimeRange1: 22.02.2011 14:00:00 - 18:00:00 | 04:00:00 

    // --- time range 2 --- 
    TimeRange timeRange2 = new TimeRange(
    new DateTime(2011, 2, 22, 15, 0, 0), 
    new TimeSpan(2, 0, 0)); 
    Console.WriteLine("TimeRange2: " + timeRange2); 
    // > TimeRange2: 22.02.2011 15:00:00 - 17:00:00 | 02:00:00 

    // --- time range 3 --- 
    TimeRange timeRange3 = new TimeRange(
    new DateTime(2011, 2, 22, 16, 0, 0), 
    new DateTime(2011, 2, 22, 21, 0, 0)); 
    Console.WriteLine("TimeRange3: " + timeRange3); 
    // > TimeRange3: 22.02.2011 16:00:00 - 21:00:00 | 05:00:00 

    // --- relation --- 
    Console.WriteLine("TimeRange1.GetRelation(TimeRange2): " + 
        timeRange1.GetRelation(timeRange2)); 
    // > TimeRange1.GetRelation(TimeRange2): Enclosing 
    Console.WriteLine("TimeRange1.GetRelation(TimeRange3): " + 
        timeRange1.GetRelation(timeRange3)); 
    // > TimeRange1.GetRelation(TimeRange3): EndInside 
    Console.WriteLine("TimeRange3.GetRelation(TimeRange2): " + 
        timeRange3.GetRelation(timeRange2)); 
    // > TimeRange3.GetRelation(TimeRange2): StartInside 

    // --- intersection --- 
    Console.WriteLine("TimeRange1.GetIntersection(TimeRange2): " + 
        timeRange1.GetIntersection(timeRange2)); 
    // > TimeRange1.GetIntersection(TimeRange2): 
    //    22.02.2011 15:00:00 - 17:00:00 | 02:00:00 
    Console.WriteLine("TimeRange1.GetIntersection(TimeRange3): " + 
        timeRange1.GetIntersection(timeRange3)); 
    // > TimeRange1.GetIntersection(TimeRange3): 
    //    22.02.2011 16:00:00 - 18:00:00 | 02:00:00 
    Console.WriteLine("TimeRange3.GetIntersection(TimeRange2): " + 
        timeRange3.GetIntersection(timeRange2)); 
    // > TimeRange3.GetIntersection(TimeRange2): 
    //    22.02.2011 16:00:00 - 17:00:00 | 01:00:00 
} // TimeRangeSample