私の頭がなぜ今回転しているのかよくわかりません。確かに長い一日ですが、私はこのことについて助けが必要です。日付ではない日付と文字列を比較する最も良い方法は何ですか?
私はDateTime変数とString変数を持っています。私は最終的に両者を平等のために比較する必要があります。 DateTimeはnullまたはDateTimeのいずれかになります。文字列は、文字列(mm/dd/yy)で表される日付または単一の単語のいずれかです。 2つの変数が等しいことを示す簡単なブール値が必要ですが、実際にはこれで苦労しています。
現時点では、date2が初期化されていないというエラーが表示されます。提案は非常に高く評価されています。ありがとう!ここで
は私がFYI
string date1= "12/31/2010";
DateTime? date2= new DateTime(1990, 6, 1);
bool datesMatch = false;
DateTime outDate1;
DateTime.TryParse(date1, out outDate1);
DateTime outDate2;
if (date2.HasValue)
{
DateTime.TryParse(date2.Value.ToShortDateString(), out outDate2);
}
if (outDate1== outDate2)
{
datesMatch = true;
}
if (!datesMatch)
{
// do stuff here;
}
...で起動するものです - 日付1と日付2だけのdevの目的のために先頭に初期化されます。実際の値はデータベースから取得されます。
EDIT#1 - これは私の最新です。 outDate2が初期化されていないことに起因するエラーを取り除くにはどうすればよいですか?私はそこに任意の日付を置き、エラーをクリアします。それは間違っていると感じるだけです。
string date1 = "12/31/2010";
DateTime? date2 = new DateTime(1990, 6, 1);
bool datesMatch = false;
DateTime outDate1;
bool successDate1 = DateTime.TryParse(date1, out outDate1);
DateTime outDate2;
bool successDate2 = false;
if (date2.HasValue)
{
successDate2 = DateTime.TryParse(date2.Value.ToShortDateString(), out outDate2);
}
if (successDate1 && successDate2)
{
if (outDate1 == outDate2)
{
datesMatch = true;
}
}
if (!datesMatch)
{
// do stuff here;
}
なぜ、「DateTime.TryParse」の戻り値を無視していますか?それが成功したかどうかあなたはどのように分かりますか? –
'date2'をヌル可能型として宣言した理由は何ですか? –
date2はdb内でnull可能な型として定義されており、実際にはnullに戻ることがあります。私はすでにデータベースにチェックした。 – DenaliHardtail