Tips

深夜を超える時間の計算

日付2010/12/28
ID76213 (英語原文参照)
バージョンv12.1
プラットフォームMac/Win

4D v12.1では, Stringコマンドで新しい日付時間フォーマットISO dateおよびDate RFC 1123が使用できるようになりました。日付と時間を合わせて計算することは, とりわけ深夜を超える時間の計算に便利です。たとえば, 次のコードは時間に1時間のオフセットを追加するものですが, 日付と時間を合わせて計算しているので, 深夜を超えても大丈夫です。

C_TEXT($now;$lastPlus1hour)

// get current timestamp
$now:=String(Current date;ISO Date;Current time)

// add 1 hour to last log entry
$lastPlus1hour:=String([table1]date1;ISO Date;[table1]time1+?01:00:00?)

If($now>$lastPlus1hour)
  // more than 1 hour has passed since last log entry
  // do something
Else
  // less than 1 hour has passed since last log entry
  // do something else
End if

仮に時間が23時過ぎであったとしても, Stringコマンドに渡された24:11:53のような時間は日付を繰り上げるので, 正しい計算結果が得られます。