c语言 怎么算某年某月某日是星期几啊?
展开全部
week=6;//2000年元旦是星期六
//每年365天,即每年星期数加1;
week += year-2000;
if(year<2000){
for(i=year;i<2000;i--)
{
if(( y%4==0 && y%100!=0) || y%400==0)) week--;
}
}
else
{
for(i=2000;i<year;i++)
{
if(( y%4==0 && y%100!=0) || y%400==0) ) week++;
}
}
for(i=0;i<month;i++)
week += month_day[i];
if(if(( y%4==0 && y%100!=0) || y%400==0) month>=2) week++;
week += day;
week = week%7;//0 =星期日
//以上计算,在2000分界处不完整,自己改进,思路如此,如果想省掉,可手算-32768年的星期,然后只算算加法,但要在中间%7一次,防止数据越界。
//每年365天,即每年星期数加1;
week += year-2000;
if(year<2000){
for(i=year;i<2000;i--)
{
if(( y%4==0 && y%100!=0) || y%400==0)) week--;
}
}
else
{
for(i=2000;i<year;i++)
{
if(( y%4==0 && y%100!=0) || y%400==0) ) week++;
}
}
for(i=0;i<month;i++)
week += month_day[i];
if(if(( y%4==0 && y%100!=0) || y%400==0) month>=2) week++;
week += day;
week = week%7;//0 =星期日
//以上计算,在2000分界处不完整,自己改进,思路如此,如果想省掉,可手算-32768年的星期,然后只算算加法,但要在中间%7一次,防止数据越界。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int
dayofwork(unsigned
short
iiyear,
unsigned
short
iimonth,
unsigned
short
iiday)
const
{
//注意:在公式中有个与其他公式不同的地方:
//把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
assert(
iimonth
>=
1
&&
iimonth
<=
12
);
assert(
iiday
>=
1
&&
iiday
<=
31);
unsigned
short
iyear
=
iiyear;
unsigned
short
imonth
=
iimonth;
unsigned
short
iday
=
iiday;
if
(
iimonth
==
1
||
iimonth
==
2)
{
iyear
=
iyear
-
1;
imonth
=
imonth
+
12;
}
return
(
iday
+
2
*
imonth
+
3
*
(
imonth
+
1)
/
5
+
iyear
+
iyear
/
4
-
iyear
/
100
+
iyear
/
400
)
%
7
+
1;
}
dayofwork(unsigned
short
iiyear,
unsigned
short
iimonth,
unsigned
short
iiday)
const
{
//注意:在公式中有个与其他公式不同的地方:
//把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
assert(
iimonth
>=
1
&&
iimonth
<=
12
);
assert(
iiday
>=
1
&&
iiday
<=
31);
unsigned
short
iyear
=
iiyear;
unsigned
short
imonth
=
iimonth;
unsigned
short
iday
=
iiday;
if
(
iimonth
==
1
||
iimonth
==
2)
{
iyear
=
iyear
-
1;
imonth
=
imonth
+
12;
}
return
(
iday
+
2
*
imonth
+
3
*
(
imonth
+
1)
/
5
+
iyear
+
iyear
/
4
-
iyear
/
100
+
iyear
/
400
)
%
7
+
1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像有点难,不过我好像有vfp的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询