[英]Find weekday of a date given the month start weekday
如果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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.