我试图以两种日期时间之间的方式减去所有总时数。(包括mm和ss,如果有的话) 例如:
TimeSpan j = DateTime.Parse("06/05/2015 12:00:00").Subtract(DateTime.Parse("04/05/2015 14:00:00"));
我想返回一个包含" 46:00:00"
的字符串TimeSpan j = DateTime.Parse("06/05/2015 12:00:00").Subtract(DateTime.Parse("05/05/2015 12:00:00"));
我想返回一个包含" 24:00:00"
的字符串TimeSpan j = DateTime.Parse("06/05/2015 12:00:00").Subtract(DateTime.Parse("05/05/2015 18:00:00"));
我想返回一个包含" 18:00:00"
的字符串答案 0 :(得分:4)
您可以使用TimeSpan.TotalHours
和String.Format
:
string result = string.Format("{0:D2}:{1:D2}:{2:D2}", (int)j.TotalHours, j.Minutes, j.Seconds);
需要转化为int
以从TotalHours
中删除小数部分。
即使分钟部分为D2
,00
也可确保您始终获得两位数字0
。
答案 1 :(得分:0)
尝试这样的事情,
我只为你的第一个条件做了
DateTime d1 = Convert.ToDateTime( "06/05/2015 12:00:00");
DateTime d2 = Convert.ToDateTime( "04/05/2015 14:00:00");
TimeSpan j = d1 - d2;
string ti = (j.TotalHours + " : " + j.TotalMinutes + " : " + j.TotalSeconds).ToString();
答案 2 :(得分:0)
我做过类似的事情:
TimeSpan j = DateTime.Parse("06/05/2015 12:00:00").Subtract(DateTime.Parse("04/05/2015 14:00:00"));
int i = 0;
if(j.Days >= 1)
{
i = j.Days * 24;
i = i + j.Hours;
}
string s = String.Concat(i.ToString(), ":", j.Minutes.ToString(), ":", j.Seconds.ToString());