2017-05-31 4 views
-2

このif文がトリガされず、次のif文に進むだけで、注文があってから48時間以内であることを確認する必要がありますようにするためif文を使って日付までの時間を確認しよう

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(); 

      } 
+0

'TimeSpan ts = DateTime.Now - otherDate; if(ts.TotalHours> 48){} ' – john

+0

あなたは負の値を48回追加しました.2番目の' AddHours'の負の符号を削除するだけです。 – juharr

+1

@juharrいいえ、それだけではありません。あなたがそれをするならば、それは過去のすべての納品日をも取る。 –

答えて

1

48時間未満配達日/時刻まで

(オーダーが作成されたときに日付が作成されます)配達日/時刻までに設置し、48時間以内時間は未来にあるはずです。 DateTime.Now.AddHours(-48)は過去のものです。

良くチェックは次のようになります。

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

しかし、あなたはまた、下限をチェックする必要が(またはあなたが過去に配達日となってしまいます)ので、それは、すべてではありません。

order.CDeliveryDate > DateTime.Now && order.CDeliveryDate < DateTime.Now.AddHours(48) 
関連する問題