举个例子可以说我有float total_Time = 228.10803我想要的是转换total_Time成时间格式所以它看起来像这样00:03:48我怎么做?
我想这样写:
{
float total_Time = 0;
float h = 0;
float m = 0;
float s = 0;
br.BaseStream.Position = i + 4;
total_Time = br.ReadSingle(); //reads 228.10803
total_Time = Convert.ToSingle(Math.Round(total_Time, 0));
if (total_Time < 3600)
{
h = 0;
}
else
{
h = total_Time / 3600;
h = Convert.ToSingle(Math.Round(h, 0));
total_Time = total_Time - (h * 3600);
}
m = total_Time / 60;
m = Convert.ToSingle(Math.Round(m, 0));
total_Time = total_Time - (m * 60);
s = total_Time;
s = Convert.ToSingle(Math.Round(s, 0));
SaveCS_PlayTime.Text = String.Format("Play Time: {0}:{1}:{2}", h, m, s);
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,它表明它是这样的00:4:-12.也许我犯了一个错误.真的需要一些帮助.我知道有些帖子的标题与我的标题几乎相同,但没有我想要的答案.
听起来你应该把它转换为a TimeSpan然后格式化:
using System;
class Test
{
static void Main()
{
float totalSeconds = 228.10803f;
TimeSpan time = TimeSpan.FromSeconds(totalSeconds);
Console.WriteLine(time.ToString("hh':'mm':'ss")); // 00:03:48
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用我的Noda Time库,在那里你构建一个Duration然后格式化它.
| 归档时间: |
|
| 查看次数: |
4569 次 |
| 最近记录: |