1
我下面舉個例子字符串值:將字符串轉換時間正常時間值替換小時到正確的
24:05 , 25:08 , 26:59
,我需要一個函數或別的東西得到一個正確的時間值(HH:MM)像:
00:05 , 01:08 , 02:59
在C#中是否有這樣做的方法?
請幫助我,我要瘋了!
Thx! 乾杯.. 亞歷山德羅
我下面舉個例子字符串值:將字符串轉換時間正常時間值替換小時到正確的
24:05 , 25:08 , 26:59
,我需要一個函數或別的東西得到一個正確的時間值(HH:MM)像:
00:05 , 01:08 , 02:59
在C#中是否有這樣做的方法?
請幫助我,我要瘋了!
Thx! 乾杯.. 亞歷山德羅
用正則表達式,你可以做這樣的:
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()
和input.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
這樣的輸入。
這正是我想要的。 Yuo're太棒了! Thx lasseespeholt ..非常感謝 – Alessandro 2011-05-31 17:07:21
@Alessandro非常歡迎:) – 2011-05-31 17:45:48
爲了更加靈活,模式應該是(\ d +):(\ d {2})'以匹配3:05,3 :00 123:01等等。有人可能會爭辯說,對於會議記錄來說,它應該是靈活的WRT,但是沒有多少人將時間表示爲H:M,通常至少是H:MM。 – 2011-05-31 18:03:13