(已解決) 如何計算兩個指定日期之間有幾個工作天?DateDiff() 取得的是日曆天而不是工作天

  •   398 
  • 最後發表   Sadless  2021 八月 03
Sadless 發文於   2021/07/31

我需要計算兩個日期間有幾個工作天,也就是有開盤的日子。

我使用了DiffDate(Date1, Date2) 之後,發現DiffDate取得的是日曆天,也就是包含了沒有開盤的日子。

因此導致程式邏輯錯誤。

請問,是否有函式可以取得兩個指定日期有幾個工作天?

如果沒有,請問要怎麼判斷該天是有開盤的日子?

因為DayOfWeek() 只能判斷是否為週一~週五,但是國定假日則無法判斷。

XQ小幫手 發文於   2021/08/03

Hello Sadless,

 

如果您是使用日頻率的話,您可以使用 GetBarOffset 函數。

舉例來說:

value1 = getbarOffset(20210726);

value2 = getbarOffset(20210730);

absValue(value1-value2) + 1就會是這兩日之間的天數(5天)。

如果您不是使用日頻率的話,可以用迴圈來計算兩日中間的日期。

舉例來說:

value1 = 0;

value2 = 0;

while getfield("Date", "D")[value1] >= 20210726 begin

    if getfield("Date", "D")[value1] <= 20210730 then value2 += 1;

    value1 += 1;

    end;

value2 即是兩日之間的天數(5天)。

發表回覆
Close