微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 通过日期计算出星期

通过日期计算出星期

时间:11-10 来源:互联网 点击:
在很多时候,我们需要获取星期值。而很多人都喜欢在设置时钟中去设置星期,事实上根本没有必要这么麻烦,我们只需要获取日期就可以随时计算出星期了。

星期是固定的以7天作为周期进行计算的,所以,只要通过日期获取,具体的天数,通过对7作为周期计算就可以获取星期值了,具体的函数如下:

/**************************************************************************************

* FunctionName : GetWeek()

* Description : 通过日期获取周

* EntryParameter : year, month, day - 日期

* ReturnValue : 返回周

**************************************************************************************/

U8 GetWeek(U8 year, U8 month, U8 day)

{

U8 i, y, m, d, weekDay;

U16 ti = 2000;

U32 days = 0;

y = (year >> 4) * 10 + (year & 0x0F);

m = (month >> 4) * 10 + (month & 0x0F);

d = (day >> 4) * 10 + (day & 0x0F);

for (i = 0; i

{

if ((ti % 4) == 0 && (ti % 100) != 0 || (ti % 400) == 0)

{

days += 366;

}

else

{

days += 365;

}

ti++;

}

for (i = 1; i

{

switch (i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

{

days += 31;

break;

}

case 2:

{

ti = 2000 + y;

if ((ti % 4) == 0 && (ti % 100) != 0 || (ti % 400) == 0)

{

days += 29;

}

else

{

days += 28;

}

break;

}

case 4:

case 6:

case 9:

case 11:

{

days += 30;

break;

}

}

}

days += d;

weekDay = (days % 7) + 5;

weekDay %= 7;

return weekDay;

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top