1

DateDiff()给我两个日期之间的日历日期数。如何获得工作日数(不包括周六/周日)?

4

2 回答 2

4

你不需要做任何事情,工作已经为你完成了。CFLib 上有一个用于此的 UDF businessDaysBetween():.

也就是说,那里使用的算法需要循环,我认为你不应该需要。它应该只是dateDiff()两个日期之间的周数,乘以五,并在开始日期和结束日期所在的一周中的某一天进行一些偏移。

我在 mo' 忙于其他事情,但如果我有时间会敲出一个更好的功能并更新 CFLib 上的功能,完成后在这里报告。

于 2013-10-20T14:04:12.060 回答
3

您可以使用dayOfWeek并确保它不是 1 或 7 并循环查看日期

  days = 0;    
  while (date1 LT date2) {
    date1 = dateAdd('d',1,date1);
    if(NOT listFind('1,7',dayOfWeek(date1))) {
      days++;
    }
  }
于 2013-10-19T23:45:01.650 回答