0

我想TimeSpan动态设置我的格式字符串。这意味着如果时间跨度值是负数,格式字符串应该不同于正数。当我想设置格式字符串时,我不知道TimeSpan!

例如:我希望负时间跨度为 -03:01:01,正值时间跨度为 003:01:01

代码是

columns.Add(new TimeSpanColumnInfo(col.PropertyName, col.TitlePersian, col.TitleEnglish, "ddd\\:hh\\:mm"));

女巫第三个参数是格式字符串

4

2 回答 2

2

您的问题仍然不清楚,但如果您有一个TimeSpan名为的对象,t您可以通过执行以下操作有条件地选择格式字符串:

string format = t < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm";

如果您确实需要在知道t(questionable) 的值之前指定格式,那么您可以更改您的方法签名以接受 aFunc<TimeSpan, string>并将以下内容作为参数传递:

o => o < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm"

更多信息Func<T, TResult>

于 2014-05-03T11:57:06.927 回答
0

听起来您正在寻找类似section separator的东西。

string s = someNumber.ToString("00;(00)");

在上面的例子中,正值用两位数输出,负值用括号括起来的两位数输出。

不幸的是,节分隔符仅对自定义数字格式有效。自定义时间跨度格式不包括部分分隔符。

于 2014-05-04T20:11:20.223 回答