将小时,分钟和秒转换为HH:MM:SS格式

时间:2017-02-13 21:59:59

标签: c# datetime

我有一个时间类,它具有单独计算小时,分钟和秒的功能。我想将计算出的时间(格式为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;
    }

1 个答案:

答案 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
 }