Je ne sais pas quel est ce format appelé 2d30m
en langage de programmation. Mais, je vois un plugin JQuery ou le saut de Youtube à l'URL de temps comme &t=3m11s
en utilisant ce format de temps. C'est difficile de google parce que je ne connais pas le mot clé excat. Donc, je veux utiliser ce type de format et traduit en objet TimeSpan
en C#. Comment puis-je atteindre cet objectif?Comment changer un format de chaîne comme 2d30m en timespan?
En ce moment je suis en train d'extraire la valeur de chaîne par ce code
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;
}
Ce [violon] (https://dotnetfiddle.net/OYi053) montre cela fonctionne. Belle solution! – FrankerZ
Cela ne fonctionne pas si j'essaie d'entrer trois chiffres minutes, ie "2d120m" – vantian
@vantian oui malheureusement c'est la limitation des méthodes d'analyse de timespan - il n'accepte pas les valeurs qui ne correspondent pas à la gamme de composants cible (0-24 pendant des heures, 0-60 pour les minutes et les secondes). – Evk