试图获取if语句来检查自日期或日期之后的多长时间

时间:2017-05-31 12:12:12

标签: c# datetime

这个if语句没有触发,只是转到下面的其他if语句,我需要它来检查订单发出后不到48小时,直到交货日期/时间不到48小时(日期)在创建订单时创建)

  if (order.COrderDate > DateTime.Now.AddHours(-48) && DateTime.Now.AddHours(-48) >  order.CDeliveryDate)
            {
                refund.transactionId = order.transactionId;
                refund.UserEmail = order.CEmail;
                decimal refundtot = order.CTotal;


                refundtot = (75 / 100) * refundtot;
                refund.RefundTotal = refundtot;

                storeDB.Refunds.Add(refund);
                await storeDB.SaveChangesAsync();

            }

1 个答案:

答案 0 :(得分:1)

  

在交货日期/时间之前不到48小时

所以那个时间应该是将来的。 DateTime.Now.AddHours(-48)是关于过去的。

更好的检查是:

order.CDeliveryDate < DateTime.Now.AddHours(48)

但这不是全部,因为你还必须检查下限(或者你最后会得到交货日期):

order.CDeliveryDate > DateTime.Now && order.CDeliveryDate < DateTime.Now.AddHours(48)