如果X =该月开始的工作日(例如,本月为4,或星期三)
Y =该月的其他某天(例如21)
查找Z,这是Y的工作日(1-7)
我认为这可以工作:
Z = (Y-X) % 7
在上面的示例中Z =(21-4)%7 = 3,这是正确的(10月21日是星期二)
但是它在11月8日失败:Z =(8-7)%7 = 1,这是错误的,因为11月8日是星期六(工作日= 7)。
那么什么是健壮的公式呢?
注意-我知道有NSDate实用程序可用于查找日期的工作日,但在这种情况下,我所知道的就是如上所述的X,Y。
如果您不从零开始计数,则很难使用模块化算术。
因此,让我们定义一些新变量:
W = X-1 =工作日数,其中W = 0表示星期日
D = Y-1 =每月的某天,从0开始
如果W + D <7,则W + D是D天的工作日编号(星期日= 0)。
因此,采用(W + D)mod 7来获取D天的工作日数。加1可以转换回星期日= 1,所以((W + D)mod 7)+ 1。
替换W和D的定义。
X天的工作日数(其中周日= 1)=((X-1 + Y-1)mod 7)+ 1 =((X + Y-2)mod 7)+ 1。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句