/*!
@brief 计算今天是一年的第几周
@param [in] nYear 年
@param [in] nMonth 月
@param [in] nDate 日
@param [in] nWeek 星期几
@return uint16_t
*/
uint16_t Cal_YearWeek(int nYear, int nMonth, int nDate, int nWeek)
{
uint16_t uYearWeek;
int nWeekCnt = 0;
int nWeekRemain = 0;
int nCount = 0;
switch(nMonth-1)
{
case 11: nCount += 30;
case 10: nCount += 31;
case 9: nCount += 30;
case 8: nCount += 31;
case 7: nCount += 31;
case 6: nCount += 30;
case 5: nCount += 31;
case 4: nCount += 30;
case 3: nCount += 31;
case 2:
if((nYear%4 == 0 && nYear %100 != 0) || nYear%400 == 0)
{
nCount += 29;
}
else
{
nCount += 28;
}
case 1: nCount += 31;
default: break;
}
// 根据当前天数计算属于一年的第几周
nCount += nDate;
nWeekCnt = (nCount + (7 - nWeek))/7;
nWeekRemain = (nCount + (7 - nWeek))%7;
uYearWeek = nWeekCnt + ((nWeekRemain == 0) ? 0 : 1);
return uYearWeek;
}
11-09
1541

01-01
07-16
1415

08-10
1959

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交
评论 1



查看更多评论

打赏作者
¥2
¥4
¥6
¥10
¥20
输入1-500的整数



