我正在计算两个字段之间的小时数:TimeIn
和TimeOut
,结果将显示在我的计算显示字段hoursWorked
上。问题是,当我在第一个字段上输入15:00
而在第二个字段上输入01:00
时,它不会显示任何内容。我尝试使用@If
执行两次计算,如果TimeOut
小于TimeIn
,它将使用第一个操作,但仍然没有。这是我的代码:
thours:=@If(@IsNull(TimeIn) | @IsNull(TimeOut)=""; @Return(""); "" );
seconds := @If(TimeOut < Timein;(24 + TimeIn) - TimeOut; TimeIn - TimeOut);
hours := @Integer(seconds/3600);
minutes := @Integer(@Modulo(seconds;3600)/60);
output := @Right("00" + @Text(hours); 2) + ":" + @Right("00" + @Text(minutes); 2);
@TextToTime(output)
答案 0 :(得分:2)
以这种方式计算秒数:
seconds := TimeOut - TimeIn;
seconds := @If(seconds < 0; seconds + 24*3600; seconds);
每当TimeOut
小于TimeIn
时,就会假定时间范围从一天到下一天。
示例:
TimeIn TimeOut hoursWorked
15:00 01:00 10:00
15:00 14:45 23:45
15:00 17:00 02:00