/*!
@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;
}
C语言计算今天是一年的第几周
最新推荐文章于 2022-12-12 20:37:29 发布