推導某天爲一年中第幾周
- 問題:已知,某天爲一年中的第幾天,以及該天爲星期幾。求,該天爲一年中的第幾周?
- 週一到週日,用(1~7)表示。
推導
- 求該天在理想狀態下(1月1號爲星期一,也就是第一週起始),應爲星期幾,即爲x。
- 用該天實際星期y減去x,求得偏差。
- 若偏差小於0,則加上7。求得結果z。
- 該天在一年中爲第p天,用p加上z。
- 用步驟4的結果,除以7,得到結果W。用步驟4的結果,以7爲模,求餘數Y。
- 如果Y不等於0,則W=W+1。最終求得的結果W,即爲該天在一年中的週數。
getWeeksOfYear(yDay, week)
{
originWeek = yDay % 7;
weekShift = week - originWeek;
if (weekShift < 0) {
weekShift = weekShift + 7;
}
newYDay = yDay + weekShift;
weekYear = newYDay / 7;
weekYearShift = newYDay % 7;
if (weekYearShift != 0) {
weekYear = weekYear + 1;
}
return weekYear;
}