我正在使用 TimeSpan 类型的列创建简单的表格报告。我将其值(导致大于 24 小时的值)加到文本组件中。
{SumTime(DataBand1,Records.time)}
我正在尝试格式化文本字段,如 HH:mm:ss,但在 25 小时内它给了我 01:00:00(或 1.01:00:00 的一般格式)而不是 25:00:00 我的目标是什么。
编辑:问题不在于如何格式化时间跨度,而是如何将格式化值关联到 Stimulsoft 的文本组件。
我正在使用 TimeSpan 类型的列创建简单的表格报告。我将其值(导致大于 24 小时的值)加到文本组件中。
{SumTime(DataBand1,Records.time)}
我正在尝试格式化文本字段,如 HH:mm:ss,但在 25 小时内它给了我 01:00:00(或 1.01:00:00 的一般格式)而不是 25:00:00 我的目标是什么。
编辑:问题不在于如何格式化时间跨度,而是如何将格式化值关联到 Stimulsoft 的文本组件。
该Hours
属性最长为 24 小时。您可以使用String.Format
and自己格式化它TimeSpan.TotalHours
:
string text = string.Format("{0}:{1}:{2}",
(int) Records.time.TotalHours, // TotalHours is double
Records.time.Minutes,
Records.time.Seconds);
我知道这是一个古老的问题,但我偶然发现它正在寻找解决方案。在进行了一些挖掘之后,这就是我想出的:
假设您已经有一个时间跨度变量(在数据源中设置它,或者使用 DateDiff 设置一个变量),您可以使用以下格式对其进行格式化:
{string.Format("{0}:{1}:{2}",
(int) Variable1.TotalHours,
Variable1.Minutes,
Variable1.Seconds)}
假设您有两个不同的字段(名为 Date1 和 Date2),您需要获得它们的区别,并且不想将其放入变量中:
{string.Format("{0}:{1}:{2}",
(int) DateDiff(Date2,Date1).TotalHours,
DateDiff(Date2,Date1).Minutes,
DateDiff(Date2,Date1).Seconds)}