c语言 怎么算某年某月某日是星期几啊?

我哪年是闰年,每月有几天都会算了,但就是星期几不知道怎么算,谁能告诉我啊,谢谢啊!... 我哪年是闰年,每月有几天都会算了,但就是星期几不知道怎么算,谁能告诉我啊,谢谢啊! 展开
 我来答
chief_lfw
推荐于2016-06-12 · TA获得超过481个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:457万
展开全部
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一次,防止数据越界。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
市苗伍昂然
2019-06-19 · TA获得超过3688个赞
知道大有可为答主
回答量:3170
采纳率:28%
帮助的人:166万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
EnglishRn
2006-11-21 · TA获得超过1169个赞
知道小有建树答主
回答量:527
采纳率:0%
帮助的人:408万
展开全部
好像有点难,不过我好像有vfp的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式