2

我试图执行下面的公式,只是想知道什么是有效的方法,

下面是计算公式

结果= min(max(dtmealstart1,dtbkgstart),dtbkgend)

dtmealstart1= 11/02/13 8AM
dtbkgstart=11/02/13 9AM
dtbkgend=11/02/13 17.00 (5PM)
result=min(max(11/02/13 8AM,11/02/13 9AM),11/02/13 17.00 )
result=11/02/13 9AM   

我刚刚用 c# 编写了这段代码来执行上述逻辑,但我只是想知道有没有最好的方法来做

int result = DateTime.Compare(dtmealStart1, dtBkgStart);
DateTime break1;
if (result < 0)
{
    break1 = dtBkgStart;
}
else
{
    break1 = dtmealStart1;
}
int result1 = DateTime.Compare(break1, dtBkgEnd);
DateTime mealstart1;
if(result1<0)
{
    mealstart1 = break1;
}
else
{
    mealstart1 = dtBkgEnd;
}

我的mealstart1价值也把它带回来11/02/13 9AM

4

1 回答 1

0

You could use the Math class on the DateTime Ticks

Something like:

 DateTime result = new DateTime(Math.Min(Math.Max(dtmealStart1.Ticks, dtBkgStart.Ticks), dtBkgEnd.Ticks));

 // result = 11/02/13 9AM  
于 2013-02-26T05:10:50.607 回答