TimeSpan如何格式化成 xx天xx小时的格式

n4download 2012-05-18 01:25:38
具体来说就是例如:
TimeSpan ts = 2012/5/2 - 2012/5/10;
Console.WriteLine("???", ts);

然后输出一个 “-7天0小时”的结果(也许是8天吧,数学不太好,呵呵……)

???处就是我要请教各位大神的地方

重点是,负数哦!!!!负数哦!!!!
...全文
2708 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
n4download 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

C# code
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddHours(-3).AddDays(-1);
TimeSpan ts = dt1.Subtract(dt2);
string outputStr = string.……
[/Quote]

没有办法一个ts+一个FormatString直接能得出来?????
  • 打赏
  • 举报
回复
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddHours(-3).AddDays(-1);
TimeSpan ts = dt1.Subtract(dt2);
string outputStr = string.Format("{0}天{1}小时", ts.Days, ts.Hours);//1天3小时
tiangong789 2012-05-18
  • 打赏
  • 举报
回复
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["时间字段"]=处理过的字符串(原来的dt.Row[i]["时间字段的基础上");
}
这样直接绑就OK了
n4download 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

-7用Math.Abs()函数处理一下就可以了
[/Quote]

最关键就是:我是是用Eval的啊,数据绑定什么的啊,
FormatString = "{0:\\ d'天'\\ h'小时'}";
lt.Text = DataBinder.Eval(gvr.DataItem, columnName, format);
lt是Literal;gvr是GridViewRow;columnName是列名。动态的……
mizuho_2006 2012-05-18
  • 打赏
  • 举报
回复
-7用Math.Abs()函数处理一下就可以了
n4download 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

ts.Days
ts.Hours
ts.Minutes
ts.Seconds

自己拼接一下就可以了
[/Quote]
除了这个方法呢?
最关键就是:我是是用Eval的啊,数据绑定什么的啊,
FormatString = "{0:\\ d'天'\\ h'小时'}";
lt.Text = DataBinder.Eval(gvr.DataItem, columnName, format);
lt是Literal;gvr是GridViewRow;columnName是列名。动态的……
熙风 2012-05-18
  • 打赏
  • 举报
回复
ts.Days
ts.Hours
ts.Minutes
ts.Seconds

自己拼接一下就可以了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧