簡體   English   中英

根據給定的月份開始工作日查找日期的工作日

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM