如何删除持续时间数据类型 NAV 中的工作日

How to remove weekdays in duration data type NAV

如何删除 CAL 中数据类型持续时间中的工作日?

例如: 持续时间 := datetime2 - datetime1

但持续时间确实包含周六和周日。我怎样才能删除它们?

简单回答:不能。

但您可以使用 Date 虚拟 table。像这样:

Date.SETRANGE("Period Type", Date."Period Type"::Date);
Date.SETFILTER("Period Start", '%1..%2', DT2DATE(datetime1), DT2DATE(datetime2));
Date.SETRANGE("Period No.", 1, 5); // only days 1 - 5 = weekdays
EXIT(Date.COUNT); // returns number of days

然后您可以通过简单的乘法将天数转换为持续时间。一个Duration无非是毫秒数

1 小时 = 3600000 毫秒。

因此:

MESSAGE('%1', NoOfDays);
dur := NoOfDays * 24 * 3600 * 1000;
MESSAGE('%1', dur);