0

TimeInとの 2 つのフィールド間の時間の合計を計算しています。TimeOut結果は、計算された表示フィールドに表示されますhoursWorked。問題は、15:00最初のフィールドと01:002 番目のフィールドに入力すると、何も表示されないことです。が最初のアクションを使用するよりも小さい@If場合に 2 つの計算を実行するために a を入れてみましたが、それでも何もしません。これが私のコードです:TimeOutTimeIn

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)
4

1 に答える 1

2

この方法で秒を計算します。

seconds := TimeOut - TimeIn;
seconds := @If(seconds < 0; seconds + 24*3600; seconds);

TimeOutが小さい場合はいつでもTimeIn、時間枠は 1 日から次の日に進むと想定されます。

例:

TimeIn   TimeOut   hoursWorked
15:00    01:00     10:00
15:00    14:45     23:45
15:00    17:00     02:00
于 2013-06-25T05:04:44.567 に答える