我不知道在編程語言中叫做2d30m
這種格式是什麼。但是,我看到一些Jquery插件或Youtube跳轉到使用此時間格式的&t=3m11s
網址。這很難谷歌,因爲我不知道excat關鍵字。如何將像2d30m這樣的字符串格式更改爲時間跨度?
所以,我想在C#中使用這種格式並將其轉換爲TimeSpan
對象。我怎樣才能做到這一點?
現在,我想通過這個代碼
public static void Main()
{
String str = "2d30m";
int day = 0, minute = 0;
//Get Day
day = Helper(str, "d");
//Get Minute
minute = Helper(str, "m");
//Create timespan
var myTimeSpan = new TimeSpan(days: day, hours: 0, minutes: minute, seconds: 0);
Console.Write(myTimeSpan);
}
public static int Helper(string input, string timeCode)
{
int output = 0;
int indexOf = input.LastIndexOf(timeCode, StringComparison.OrdinalIgnoreCase);
if (indexOf > 0)
{
string strTime = input.Substring(Math.Max(0, indexOf - 2), 2);
Console.WriteLine(strTime);
strTime = System.Text.RegularExpressions.Regex.Replace(strTime, "[^0-9.]", ""); // remove all alphabet
output = Convert.ToInt32(strTime);
}
return output;
}
這[小提琴](https://dotnetfiddle.net/OYi053)顯示這個作品。好的解決方案 – FrankerZ
這是行不通的,如果我嘗試輸入三位數分鐘,即「2d120m」 – vantian
@vantian不幸的是,這是時間分析方法的限制 - 它不接受與目標組件範圍不匹配的值(0-24小時, 0-60分鐘和秒)。 – Evk