如果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。
答案 0 :(得分:2)
如果你不从零开始计数,很难使用模运算。
所以让我们定义一些新的变量:
W = X - 1 =工作日编号,其中W = 0表示星期日
D = Y - 1 =月份的日期,从0开始
然后,如果W + D 所以拿(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.