c#比较日期时间和其他2日期
问题描述:
我试图比较一个特定的日期periodDate
存储在一个xml文件与一个stopDate
和startDate
。c#比较日期时间和其他2日期
所以,如果periodDate
是startDate
和StopDate
之间插入数据:
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
}
我的问题是,即时通讯卡在第一if
即使periodDate
没有startDate
和stopDate
之间。
答
的问题是既DateTime.Compare(periodTime, startDatePer1) == 1
和periodTime.CompareTo(stopDatePer1) == 1
转化为>
。
将第二个更改为-1,它应该工作。但你并不需要使用Compare
或CompareTo
,只是使用<
和>
答
为什么不:
if(periodDate > startDate && periodDate < stopDate)
+0
感谢这工作perfekt – dumbel 2011-05-06 10:27:49
答
if (periodTime >= startDatePer1 && periodTime <= startDatePer2)
{
// Then insert data
}
答
最可读的形式是:
if (startDate < periodTime && periodTime < stopDate) {
}
由于这更清楚地显示了一段时间躺在之间的startDate和stopDate即的startDate < periodTime < stopDate
答
This库包括类TimeRange支持vario我们的时间关系:
// ----------------------------------------------------------------------
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
'if(periodDate> = startDate && periodDate Bobby 2011-05-06 10:20:09
你为什么卡住了,没有让你这么做? – V4Vendetta 2011-05-06 10:23:56