次の例の文字列値があります。
24:05 , 25:08 , 26:59
次のような正しい時間値 (hh:mm) を取得するには、関数または何か他のものが必要です。
00:05 , 01:08 , 02:59
これを行うC#のメソッドはありますか?
私を助けてください、私はこれに夢中になるつもりです!!
どうも!乾杯..アレッサンドロ
正規表現を使用すると、次のように実行できます。
var match = Regex.Match("25:05", @"^(\d{2,}):(\d{2})$");
var hour = int.Parse(match.Groups[1].Value) % 24;
var min = int.Parse(match.Groups[2].Value);
// hour will be 1 and min 5
正規表現を避けたい場合は、単純なinput.IndexOf()
andinput.SubString()
を使用します。
更新:その方法が必要な場合は、これを見てください:
static TimeSpan ParseHHMM(string input)
{
var match = Regex.Match(input, @"^(\d{2,}):(\d{2})$");
var hour = int.Parse(match.Groups[1].Value) % 24;
var min = int.Parse(match.Groups[2].Value);
return new TimeSpan(hour, min, 0);
}
// Write to console
Console.WriteLine(ParseHHMM("25:05").ToString(@"hh\:mm"));
更新:時間の部分に変更\d{2}
しました。\d{2,}
これは、 のような入力を受け取ることができるようになったことを意味します125:05
。