TimeAdd -  (內建函數) 時間函數
語法:
用來計算某個時間以前或是以後的時間。
回傳時間 = TimeAdd(時間數值,要運算的時間欄位單位,要增加的數值)
第一個參數是開始計算的時間,格式為HHMMSS,或者HHMMSS.fff的時間數字
第二個參數是要運算的時間欄位,如果是小時則傳"H",如果是分鐘則傳"M",如果是秒的話則傳"S",如果是毫秒的話則傳"MS"
第三個參數是要增加的數值,可以是正數或是負數
回傳計算後的時間,格式也是 HHMMSS 或 HHMMSS.fff 的時間數字
說明:

時間數值是一個5~6碼的數字,格式是HHMMSS:

  • HH是小時,數值範圍從0到23,可以是1位數字或是2位數字
  • MM是分鐘,數值範圍從00到59,必須是2位數字
  • SS是秒數,數值範圍從00到59,必須是2位數字

通常是透過CurrentTime,Time(資料的時間欄位),或是其他時間相關函數所產生的時間數值。


時間數值也可以是一個含有毫秒的 8~9 碼的數字,格式是HHMMSS.fff:

  • HH是小時,數值範圍從0到23,可以是1位數字或是2位數字
  • MM是分鐘,數值範圍從00到59,必須是2位數字
  • SS是秒數,數值範圍從00到59,必須是2位數字
  • fff是毫秒,數值範圍從000到999,必須是3位數字

通常是透過CurrentTimeMS,FilledRecordTimeMS,或是其他含有毫秒的時間相關函數所產生的時間數值。

第二個參數是要執行運算的時間欄位單位,如果我們要計算第一個時間的後幾小時的話,則傳入"H",如果我們要計算第一個時間的後幾分的話,則傳入"M",如果我們要計算第一個時間的後幾秒的話,則傳入"S",如果我們要計算第一個時間的後幾毫秒的話,則傳入"MS"。

第三個參數則是要增加的數值,可以是正數(表示往後加), 也可以是負數(表示往前減)。

TimeAdd回傳的數值也是HHMMSS或者HHMMSS.fff的時間格式。

以下是簡單的範例:

Value1 = TimeAdd(120000, "H", 1);	// Value1 = 130000
Value2 = TimeAdd(123000, "M", -30); // Value2 = 120000
Value3 = TimeAdd(120000, "MS", 1); // Value3 = 120000.001

以下是一個應用範例,使用1分鐘頻率執行,利用TimeAdd來判斷目前資料是否是位於創新高後的1小時內: 

Var: HighTime(0);
if Date <> Date[1] then HighTime = 0;
if H > Highest(H[1],60) then HighTime = Time;


if HighTime > 0 And Time > HighTime And Time < TimeAdd(HighTime,"H",1) Then 
Begin
   // 創新高後的1小時內
End;

請注意上述範例內當Date不等於Date[1]時(分鐘線資料換日)必須把HighTime清掉,以確保HighTime是當日創新高的時間點。