私はプログラミング言語で2d30m
のようなこのフォーマットが何であるか知りません。しかし、私はこの時間フォーマットを使用して&t=3m11s
のような時間URLにいくつかのJqueryのプラグインまたはYoutubeのジャンプを参照してください。私はexcatキーワードを知らないので、Googleには難しいです。2d30mのような文字列形式をタイムパンに変更するにはどうすればよいですか?
だから、私はこの種の形式を使用して、C#のTimeSpan
オブジェクトに翻訳しました。どうすればこれを達成できますか?
今私はただ、文字列全体に対してRegex.Match
を使用
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;
}
この[fiddle](https://dotnetfiddle.net/OYi053)はこれを示しています。ニースの解決策! – FrankerZ
3桁の分、つまり "2d120m"を入力しようとすると動作しません – vantian
@vantianはい残念ながら、timespan解析メソッドの制限です - 対象コンポーネントの範囲と一致しない値を受け入れません(時間、分と秒で0〜60)。 – Evk