pjweekday 多天的工作日异常常量

pjweekday constants for weekday exceptions for multiple days

我一直在尝试导入和导出 MS-Project from/to Excel 的工作日例外情况。每天、每月或每年的异常都没有问题,但每周的异常确实给我带来了一些麻烦:

通过记录,我了解到对于(通过复选框)选择的几个工作日的每个组合,属性“pjWeekday”(或记录代码中的 DaysOfWeek)是一个特定的整数 (6, 10 & 18 在下面的例子中)。

录制代码示例:

ActiveProject.BaseCalendars("Copy of Standard").Exceptions.Add Type:=6, Start:="01.01.2022", Finish:="18.01.2022", Name:="TestWeekly1", Period:=1, DaysOfWeek:=6
    ActiveProject.BaseCalendars("Copy of Standard").Exceptions.Add Type:=6, Start:="01.02.2022", Finish:="02.02.2022", Name:="TestWeekly2", Period:=1, DaysOfWeek:=10
    ActiveProject.BaseCalendars("Copy of Standard").Exceptions.Add Type:=6, Start:="01.03.2022", Finish:="03.03.2022", Name:="TestWeekly3", Period:=1, DaysOfWeek:=18

有没有办法在不记录所有不同可能性的情况下获取所有组合的所有整数列表(或者是其背后的算法)?

非常感谢任何建议, 克里斯

Microsoft 站点上记录了枚举常量; here's the list for pjWeekDay.

Exceptions.Add 方法声明 DaysOfWeek 参数是“发生异常的日期。可以是 PjWeekday 常量的组合。”我的测试表明这只是部分事实。

DaysOfWeek 值似乎不是 PjWeekday 常数,而是可以聚合的 2 的幂。例如,如果每周例外是星期一,则 DaysOfWeek = 2 (2^1),而星期四则为 16 (2^4)。如果周一和周三例外,则该值为 10 (2^1 + 2^3)。

公式为:异常中每个工作日2 ^ (PjWeekday constant - 1)的总和