如何在 Crystal 报表中以十进制格式显示时间
How to display time in decimal format in Crystal Report
现在,我已经成功地以 "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
使用 "time(strout)" 将此返回的字符串值转换为时间格式,然后右键单击公式字段然后选择 select 格式字段选项,它将在此 select 中打开一个格式编辑器 "date and time" 选项卡。然后单击 "customize" 选项卡,它将打开一个自定义样式 window。
自定义样式 window select 时间来自 "Datetime" 选项卡中的订单字段。然后单击时间选项卡和 select 您想要的格式。
试试下面的公式,我认为它对你有用
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;
现在,我已经成功地以 "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
使用 "time(strout)" 将此返回的字符串值转换为时间格式,然后右键单击公式字段然后选择 select 格式字段选项,它将在此 select 中打开一个格式编辑器 "date and time" 选项卡。然后单击 "customize" 选项卡,它将打开一个自定义样式 window。
自定义样式 window select 时间来自 "Datetime" 选项卡中的订单字段。然后单击时间选项卡和 select 您想要的格式。
试试下面的公式,我认为它对你有用
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;