2016-11-02 24 views
-6

2つの日付があります。トリミング後に2つの文字列値を比較します

ReleaseDates = "11/2/2016"; 
LiveDate = "11/02/2016"; 

上記の2つの日付は同じです。しかし私の下のコーディングではFALSEを返します。

if (ReleaseDates.Contains(LiveDate.TrimStart(new Char[] { '0' }))) 
{ 

} 
+0

文字列の代わりに 'DateTime'を使用できますか?' DateTime'を解析すると、それは簡単です –

+0

おそらく、日付として解析して比較したいのですか? – Andrei

+2

値のうちの1つは '11/2/2016'で、もう1つは' 11/02/2016'です。あなたの考え方はうまくいかないかもしれません。文字列の先頭から '0'を削除します。たとえば、' 011/2/2016'なら '11/2/2016'になります。 –

答えて

0

これは、日付を比較していないため、同じでない2つの文字列を比較しているためです。あなたのベストショットは、最初に解析してから比較することです。

DateTime releaseDate = DateTime.Parse(ReleaseDates); 
DateTime liveDate = DateTime.Parse(LiveDate); 
if (releaseDate == liveDate) // This should be true. 
{ 
    // Do stuff. 
} 
+0

とにかく、なぜ文字列を日付に使うのですか? – JCabello

2

TrimStartは、文字列の先頭で文字を除去するのであなたのコードは動作しません。 LiveDateの冒頭にゼロがないようです。トリミングする文字'0'は、他の文字の前にインデックス3があります。だからこそ刈り取られていないのです。

日付を表す文字列を比較すると、エラーが発生しやすくなります。両方の文字列を解析し、結果をDateTimeオブジェクトと比較する方がよいでしょう。

一般的に、日付を表すオブジェクトとして日付を保持する必要があります(例:DateTimeまたはDateTimeOffset)。これにより、日付表示を表示目的にカスタマイズし、日付形式がmm/ddからdd/mmに変わるときのエラーを避けることができます。

関連する問題