TimeSpan转换

M M*_*han 2 c# timespan minute seconds

我想将分钟转换为秒,此刻我遇到了问题,因为在分钟文本框中,当我输入1.50时,结果为90秒,这是错误的,因为1.30 = 90秒

    private void MtoCbutton_Click(object sender, EventArgs e)
    {
        if (minTosecTextBox.Text != "Minutes")
        {
            minutes = Convert.ToDouble(minTosecTextBox.Text);
            TimeSpan span = TimeSpan.FromMinutes(minutes);
            resultSectextBoxtextBox.Text = span.TotalSeconds.ToString();
        }

        else
        {

            MessageBox.Show("Please enter Minutes");
        }
Run Code Online (Sandbox Code Playgroud)

Pao*_*sco 7

您可能正在寻找类似TimeSpan.Parse方法的内容:

var ts = TimeSpan.Parse("00:01:30");
Run Code Online (Sandbox Code Playgroud)

这将产生90秒的TimeSpan.

还有一种ParseExact方法可以指定格式字符串,因此您不必每次都指定小时数,甚至可以将点指定为分隔符:

var ts = TimeSpan.ParseExact("01.30", @"mm\.ss", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

有关格式字符串,请参阅自定义日期和时间格式字符串.

另请注意,您需要转义要按字面解释的每个字符(因此在\之前.).

您的案例的完整代码:

var ts = TimeSpan.ParseExact(minTosecTextBox.Text, @"mm\.ss", System.Globalization.CultureInfo.InvariantCulture);
resultSectextBoxtextBox.Text = ts.TotalSeconds.ToString();
Run Code Online (Sandbox Code Playgroud)