由日期得到周几的C++编程设计怎么做?

就是C++不要用C语言、、... 就是C++不要用C语言、、 展开
 我来答
WPG_Seven
2012-05-23 · 超过18用户采纳过TA的回答
知道答主
回答量:40
采纳率:100%
帮助的人:41.5万
展开全部
可以利用操作系统来帮你运算达到目的,这是一种投取巧的方法。
如果是在 windows 平台上编程, 可以这么写(其它平台有类似的API)
1、包含头文件 #include <windows.h>

2、得到当前时间, 并复制到中间变量
SYSTEMTIME now, temp;
GetLocalTime(&now);
temp = now;

3、更改中间变量的日期号, 其中 y,m,d 分别为已知的需转化的 年 月 日,其它时间初始为0值
temp.wYear = y;
temp.wMonth = m;
temp.wDay = d;
temp.wDayOfWeek = -1;
temp.wMilliseconds = 0;
temp.wHour = 0;
temp.wMinute = 0;
temp.wSecond = 0;

3、把中间变量设为当前时间
SetLocalTime(&temp);

5、再次得到时间,其中 now.wDayOfWeek 就是 星期几的数字,星期天为 0,星期一为1,如此类推
GetLocalTime(&temp);

6、把系统时间设为到之前保存的值
SetLocalTime(&now);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d83e33e
2012-05-22 · TA获得超过1171个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:189万
展开全部
基姆拉尔森计算公式:W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。
在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,
例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

C++ Code:
void CaculateWeekDay(int y,int m, int d)
{
if(m==1||m==2) {
m+=12;
y--;
}
int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(iWeek)
{
case 0: cout<<"星期一"<<endl; break;
case 1: cout<<"星期二"<<endl; break;
case 2: cout<<"星期三"<<endl; break;
case 3: cout<<"星期四"<<endl; break;
case 4: cout<<"星期五"<<endl; break;
case 5: cout<<"星期六"<<endl; break;
case 6: cout<<"星期日"<<endl; break;
}
}

int main()
{
int year=2012,month=5,day=22;
CaculateWeekDay(year,month,day);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式