如何删除 CAL 中数据类型持续时间中的工作日?
例如:持续时间:= datetime2 - datetime1
但持续时间确实包含周六和周日。我怎样才能删除它们?
如何删除 CAL 中数据类型持续时间中的工作日?
例如:持续时间:= datetime2 - datetime1
但持续时间确实包含周六和周日。我怎样才能删除它们?
简单的回答:你不能。
但是你可以使用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);