我有一个时间类,它具有单独计算小时,分钟和秒的功能。我想将计算出的时间(格式为1h 30min,从下面的代码中的toReadableString()方法获得的20secs)转换为HH; MM :SS格式。我已经看到了一些例子,但这并没有解决我的问题。另外,我想通过添加两个不同的时隙来计算总持续时间(例如,第1个时隙是20分45秒,第2个时隙是1小时30分15秒,它们加在一起给予1小时51分钟。感谢任何帮助。谢谢。
public int getMinutes()
{
long minutesTotal = (time / 1000 / 60);
return (int)minutesTotal % 60;
}
public int getSeconds()
{
return (int)(time - (getHours() * 60 * 60 * 1000) - (getMinutes() * 60 * 1000)) / 1000;
}
public int getHours()
{
return (int)(time / 1000 / 60 / 60);
}
public String toString()
{
return "abs_" + Convert.ToString(time);
}
/**
* Convert time to a human readable string.
* @return - human readable string.
*/
public String toReadableString()
{
if (getHours() == 0 && getMinutes() == 0 && getSeconds() == 0)
{
if (getTime() > 0)
{
return getTime() + "ms";
}
else
{
return "zero";
}
}
String result = "";
if (getHours() != 0)
{
result += Convert.ToString(getHours()) + "h ";
}
else
{
if (getMinutes() == 0)
{
return Convert.ToString(getSeconds()) + "sec";
}
}
result += Convert.ToString(getMinutes()) + "m ";
result += Convert.ToString(getSeconds()) + "s";
return result;
}
答案 0 :(得分:2)
在C#中,您可以使用TimeSpan对这些时间值进行数学运算。
试试这个:
var first = new TimeSpan(0, 20, 45); // 20mins 45secs
var second = new TimeSpan(1, 30, 15); // 2nd time slot is 1hr30mins15secs
var result = first + second;
Debug.WriteLine(result.ToString());
public String toReadableString(TimeSpan ts)
{
// TODO: Write your function that receives a TimeSpan and generates the desired output string formatted...
return ts.ToString(); // 01:51:00
}