2016-06-14 18 views
2

00:00:15:185という文字列があるので、15秒以上が必要です。C#で2つの文字列を比較する

時間の形式はHHです:M:SS:FFF

は、これは明らかに15秒以上であるが、私はそれを正しく比較することはできません。

現在のコードはこれです:

value = "00:00:15:185";  
if (DateTime.Parse(value) > DateTime.Parse("00:00:15:000"){ 
    //do stuff 
} 

私はそれをすべての時間を実行すると、プログラムが動作しない場合には、例外を与えているときにすべき

+0

可能な重複を使うのか? http://stackoverflow.com/questions/10290187/how-to-compare-time-part-of-datetime - DateTime.CompareまたはTimeSpan.Compareを使用することをお勧めします。 –

答えて

5

時間を表すものではありませんあなたの文字列が、 時間。私たちはTimeSpanを持っています。

var value = "00:00:15:185"; 
if (TimeSpan.ParseExact(value, @"hh\:mm\:ss\:FFF", CultureInfo.InvariantCulture) 
     > TimeSpan.FromSeconds(15)) 
{ 
    //do stuff 
} 
+1

ありがとうございます。私はそれを知らなかったし、それは部分的にしかこれが欠点であったが、別の問題であったことが判明する。障害の発生場所を見つけ出すのを手伝ってくれてありがとう。 – Clarkinator

0

(離れて@robの答えから)別のオプションを、このからDateTime.ParseExact

var value = "00:00:15:185";  

    if (DateTime.ParseExact(value, "HH:mm:ss:fff", CultureInfo.InvariantCulture) > 
     DateTime.ParseExact("00:00:15:000", "HH:mm:ss:fff", CultureInfo.InvariantCulture)) 
    { 
     // logic here. 
    }