0

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

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

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

4

1 回答 1

1

简单的回答:你不能。

但是你可以使用Date虚拟表。像这样的东西:

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

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

1 小时 = 3600000 毫秒。

所以:

MESSAGE('%1', NoOfDays);
dur := NoOfDays * 24 * 3600 * 1000;
MESSAGE('%1', dur);
于 2017-10-30T08:07:38.503 回答