如何在Crystal Report中以十进制格式显示时间

时间:2018-01-12 06:32:22

标签: crystal-reports decimal

现在,我已成功以“HH:mm”格式显示时间,但我需要将其更改为小数。例如,小时是2.30意味着2小时30分钟,但我需要它是2.5意味着2.5小时。请帮忙。以下是我的代码:

Local NumberVar HoursDiff;
Local NumberVar MinutesDiff;
Local NumberVar SecondsDiff;
Local StringVar strOut;

SecondsDiff := DateDiff('s',{Invoicing.TimeFrom},{Invoicing.TimeTo});
HoursDiff:= SecondsDiff  \ (60 * 60);
SecondsDiff  := SecondsDiff  MOD (60 * 60);
MinutesDiff:= SecondsDiff \ 60;

strOut := strOut & CStr(HoursDiff,0)& '.' & CStr(MinutesDiff,'00'); 
strOut

2 个答案:

答案 0 :(得分:1)

尝试以下公式,我认为它适用于您

timeVar time_value := CTime("2:30");//Time in HH:mm format
stringVar timeString := ToText(time_value);
numberVar time_in_min := ToNumber(Split(timeString,":")[1])*60 +   ToNumber(Split(timeString,":")[2]) ;
time_in_min/60;

答案 1 :(得分:0)

使用" time(strout)"将此返回的字符串值转换为时间格式,然后右键单击公式字段然后选择格式字段选项,它将在此选择中打开格式编辑器"日期和时间"标签。然后点击"自定义"选项卡将打开一个自定义样式窗口。

自定义样式窗口中的

从"日期时间"中的订单字段中选择时间标签。然后单击时间选项卡并选择所需的格式。