4D v13.4時間演算子 |
|||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
時間演算子
|
演算子 | シンタックス | 戻り値 | 例 | 結果 |
加算 | 時間 + 時間 | 時間 | ?02:03:04? + ?01:02:03? | ?03:05:07? |
減算 | 時間 - 時間 | 時間 | ?02:03:04? - ?01:02:03? | ?01:01:01? |
加算 | 時間 + 数値 | 数値 | ?02:03:04? + 65 | 7449 |
減算 | 時間 - 数値 | 数値 | ?02:03:04? - 65 | 7319 |
乗算 | 時間 * 数値 | 数値 | ?02:03:04? * 2 | 14768 |
除算 | 時間 / 数値 | 数値 | ?02:03:04? / 2 | 3692 |
倍長整数の除算 | 時間 \ 数値 | 数値 | ?02:03:04? \ 2 | 3692 |
モジューロ | 時間 % 数値 | 数値 | ?02:03:04? % 2 | 0 |
時間式を数値と組み合わせた式から時間式を取得するには、TimeコマンドとTime stringコマンドを使用します。
例題:
` 以下の行は$vlSecondsに現在時刻から1時間後の秒数を代入します
$vlSeconds:=Current time+3600
` 以下は$vhSoonに現在時刻から1時間後の時間を代入します
$vhSoon:=Time(Time string(Current time+3600))
2番目の行はより簡単に記述することができます:
` 以下は$vhSoonに現在時刻から1時間後の時間を代入します
$vhSoon:=Current time+?01:00:00?
ただし、アプリケーションを開発する際に、秒数で表された遅延時間を時間値に加えるといった必要があった場合、数値表現を用いることでのみ実現可能です。この場合、次のヒントを参考にしてください。
状況によっては、時間表現を数値表現に変換する必要があります。
例えば、Open documentを使用してドキュメントを開くとドキュメント参照 (DocRef) が返されますが、これは元々時間式です。後でドキュメント参照として数値を受け取る4D ExtensionルーチンにDocRefを渡すとします。この場合ゼロに加えることにより、時間値からその値を変更することなく数値を取得できます。
例題:
` ドキュメントを選択し開く
$vhDocRef:=Open document("")
If(OK=1)
` ドキュメント参照値の時間を数値としてルーチンに渡します
DO SOMETHING SPECIAL(0+$vhDocRef)
End if
モジューロ演算子を使用できます。とくに24時間フォーマットを考慮した時間の追加に便利です:
$t1:=?23:00:00? // これは午後11:00です
// 2時間30分を追加します
$t2:=$t1 +?02:30:00? // 単純な追加を行うと$t2は?25:30:00?になります。
$t2:=($t1 +?02:30:00?)%?24:00:00? // $t2は?01:30:00?となる。
プロダクト: 4D
テーマ: 演算子
ピクチャ演算子
ビットワイズ演算子
数値演算子
文字列演算子
日付演算子
比較演算子
演算子
論理演算子