如何删除持续时间数据类型 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);
如何删除 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);