C# 如何将分钟解析为秒?
我想以秒为单位分析以下输入“10:05”,格式为“分:秒”。所以10:05应该是10*60=600+5=605。如何使用代码完成此操作?只需拆分字符串,解析数字,然后进行计算:C# 如何将分钟解析为秒?,c#,C#,我想以秒为单位分析以下输入“10:05”,格式为“分:秒”。所以10:05应该是10*60=600+5=605。如何使用代码完成此操作?只需拆分字符串,解析数字,然后进行计算: string s = "10:05"; var parts = s.Split(':'); int seconds = int.Parse(parts[0]) * 60 + int.Parse(parts[1]); Console.WriteLine(seconds); // 605 在本例中,如果在格式前面添加一
string s = "10:05";
var parts = s.Split(':');
int seconds = int.Parse(parts[0]) * 60 + int.Parse(parts[1]);
Console.WriteLine(seconds); // 605
在本例中,如果在格式前面添加一个小时部分,还可以使用它来解析该格式。然后,您可以使用该属性获得所需的结果:
double seconds = TimeSpan.Parse("00:" + s).TotalSeconds;
Console.WriteLine(seconds); // 605
有很多方法可以做到这一点。这里只有一对。如果知道格式总是
mm:ss
,则可以使用TimeSpan
类、ParseExact
方法和TotalSeconds
属性。下面是一个例子,说明了如何做到这一点
TimeSpan ts = TimeSpan.ParseExact(mytime, "mm:ss", System.Globalization.CultureInfo.InvariantCulture);
double seconds = ts.TotalSeconds;
如果您有一系列不同的格式可以显示,您可以使用ParseExact并提供多种时间格式。下面是一个采用几种格式的示例
//HH -> 24 hour format always with 2 digits ("08" = 8 hours)
// H -> 24 hour format with as few digits as possible ("8" = 8 hours)
//mm -> minutes always with 2 digits ("08" = 8 minutes)
// m -> minutes with as few digits as possible ("8" = 8 minutes)
//ss -> seconds always with 2 digits ("08" = 8 seconds)
// s -> seconds with as few digits as possible ("8" = 8 seconds)
string[] formats = new string["HH:mm:ss", "H:mm:ss", "mm:ss", "m:ss", "ss", "s"];
TimeSpan ts = TimeSpan.ParseExact(mytime, formats, System.Globalization.CultureInfo.InvariantCulture);
double seconds = ts.TotalSeconds;
下面是TimeSpan类的MSDN文档的链接。查看TimeSpan类的和。下面是有关格式化时间字符串的详细信息
另一种方法是手动将输入字符串拆分为两部分,并使用Convert
类将每个部分转换为整数或双精度
string[] timeparts = mytime.Split(':');
string minstr = timeparts[0];
string secstr = timeparts[1];
int mins = Convert.ToInt32(minstr);
int secs = Convert.ToInt32(secstr);
int seconds = mins * 60 + secs;
下面是
Convert
类的示例。@poke很接近,但您要求秒数,因此:
string s= "10:05";
double seconds = TimeSpan.Parse("00:" + s).TotalSeconds;
返回605。并验证是否有两个部分。请注意,如果时间跨度超过23:59,“75:05”怎么办?因为问题没有提到小时符号哇,秒?我怎么没注意到+1.我尝试了TimeSpan类,但我不能让它像我想要的那样工作。谢谢,tho。