提取时间字符串的分钟部分

Extract the minutes part of a time string

如何 trim 时间字符串中的所有冒号以及小时和秒数?我想从 00:15:27 (15) 获得唯一的总分钟数。你能帮帮我吗?我的代码只有 trim 个冒号之一,我怎样才能 trim 所有冒号并删除秒数以获得分钟数?

string s = label11.Text = "00:15:27";
s= label11.Text.Trim(':','0');

它看起来像你试图从你的字符串中获取分钟组件所以最好将你的字符串解析为 TimeSpan 然后检索它的分钟组件,如

string s = "00:15:27";

int minute = 0;
TimeSpan ts;

if (TimeSpan.TryParse(s, out ts))
{
    minute = ts.Minutes;
}
else
{
    //Your string is not in proper time format
}

Console.WriteLine("Minute:" + minute);
Console.ReadLine();

输出:

编辑:

如果您想从字符串中获取小时、分钟和秒的组成部分,那么

string s = "01:15:27";

int hours = 0;
int minutes = 0;
int seconds = 0;
TimeSpan ts;

if (TimeSpan.TryParse(s, out ts))
{
    hours = ts.Hours;
    minutes = ts.Minutes;
    seconds = ts.Seconds;
}
else
{
    //Your string is not in time format
}

Console.WriteLine("Hours:" + hours);
Console.WriteLine("Minutes:" + minutes);
Console.WriteLine("Seconds:" + seconds);
Console.ReadLine();

输出:

为什么不直接将您的字符串转换为时间并获得您想要的分钟数……像这样

  string s =  "00:15:27";
  DateTime Time = DateTime.ParseExact(s, "HH:mm:ss",CultureInfo.InvariantCulture);
  var minutes = s.Minute;

你会得到你的时间。

像你在评论中说的那样几个小时

var hours = s.Hour;
hoursTominutes = hours * 60 ;
var Totalminutes = hoursTominutes + minutes ; 

我同意 Haroon nasir 的观点,解析到时间跨度是可行的方法。

但是,有一种更简单的方法来获取总分钟数:TimeSpan 中有 "TotalMinutes" 属性。

TimeSpan.Parse(timeAsString, out Timespan parsedTime);
double minutes = parsedTime.TotalMinutes;

将此用于 1:15:27 将产生 75.45 分钟,无需任何额外步骤