2017-07-19 12 views
0
DateTime followingTrialDate = Convert.ToDateTime(row["FollowingTrialDate"]); 
if (followingTrialDate.AddDays(-14)) 
{ 
    ModuleBody = davaTarih.ToShortDateString() + " tarihli dava'ya 14 (on dört) gün kalmıştır."; 
    ModuleBody = "sayın ilgili, \r\n \r\n" + "esas no: " + esasNo + "\r\n" + "dava tarihi: " + davaTarih.ToShortDateString() + "\r\n" + "sonraki duruşma tarihi: " + sonrakidurusmaTar + "\r\n" + "kısa açıklama: " + kısaAciklama + "\r\n\r\n" + "bilginize,"; 
} 

"if"サイクルでエラーが発生します。エラー:DateTime形式から日数を引く

Cannot implicitly Convert Type 'System.DateTime' to 'bool'

私はエラーを知っていますが、 "if"ループはbool値を取得します。しかし、私は からDateTime型を取得できませんでした。 DateTime型から14日を引く方法は?

+9

あなたがもし条件にチェックするために何をしたいですか: は、例えば、フォーマットがmm/dd/yyyy

であるあなたは、このようにそれを扱うことができますか? –

+0

'if(followingTrialDate == followingTrialDate.AddDays(-14))'、これで十分ですか?一般的なルールとして、条件が 'bool'や' bool'を返す式を使わなければならない場合。 –

+0

ifブロックに入るかどうかを判断するには、 'if'がtrueまたはfalseに何かを評価する必要があります。 'DateTime.addDays'の結果は別の' DateTime'オブジェクトです。 'DateTime'をtrueまたはfalseとして解釈することはできません。あなたのifステートメントは意味をなさない。英語ではif文は「trialDateマイナス14日」と表示されます。それは不完全で無意味です。他の日付、現在の日付と比較することを意味しましたか? – ADyson

答えて

4

あなたは罰金の日を差し引いています。 followingTrialDate.AddDays(-14)が正しく、followingTrialDateから14日を引いたもの(新しいDateTime)を返します。問題はif文で比較していないことです。

Can not implicitly Convert Type 'System.DateTime' to 'bool'

問題を正確に説明しています。あなたのコードは次のようなものです:

if (new DateTime()) { 
    // do something 
} 

これはまったく同じエラーを生成します。日付の時間は何ですか? trueまたはfalseにすることはできません。 Ifはブール値でのみ動作します。

>または<と他の日付時刻と比較したいと思います。

これは、例えば、働くだろう:

if (followingTrialDate.AddDays(-14) < DateTime.Now) 
0
DateTime followingTrialDate = Convert.ToDateTime(row["FollowingTrialDate"]).AddDays(-14); 

は、トリックを行います。ただし、ここで何らかのエラー処理が必要な場合があります(row["FollowingTrialDate"]をDateTimeに変換できないため、例外がスローされる場合はどうなりますか?)。

残っている唯一の問題は、ifで確認したいことです。

2

if文に誤りがあります。関数AddDaysは、DateTime(link)と)を返します。

あなたが日減算したい場合、あなたは正しい道にいる:

DateTime dt = new DateTime(2017, 7, 20); 
dt = dt.AddDays(-5); 
Console.WriteLine(dt.ToString()); // output: 15. 07. 2017 
0

if文は、ブール式なければなりません - あなたのを得ているようブール式の代わりに

日付ではありませんDataRowからの日付であり、nullである可能性があります。このような行為をしないと、行がNULLであるかどうかをチェックし、そうでない場合は日付の14日前に計算されます。

1

Cannot implicitly Convert Type 'System.DateTime' to 'bool'

DateTime.AddDays方法は、このインスタンスの値に指定した日数を追加する新しいのDateTimeを返します。 ifは、ブール値に評価される条件が必要です。この不一致は上記の特定のエラーにつながります。

次のように日付と時刻の変数に AddDays()の結果を割り当てる必要があり、このために

how to subtract from DateTime type 14 days ?

ここ
DateTime PrevDate = followingTrialDate.AddDays(-14); 
// Proceed with PrevDate 
0

我々はDateTimeの

DateTime oldDt = dt.Subtract(TimeSpan.FromDays(14)); 
から日を減算する別の方法をしました比較のために DateTimeに解析する必要があります。

row["FollowingTrialDate"]

if(row["FollowingTrialDate"]!=null 
{ 
    DateTime dt=DateTime.ParseExact(row["FollowingTrialDate"].ToString(),"mm/dd/yyyy"); 
    if(dt < oldDt) //or any date comparison you like 
    { 
     //code here 
    } 
} 
関連する問題