2个回答
展开全部
可以利用操作系统来帮你运算达到目的,这是一种投取巧的方法。
如果是在 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);
如果是在 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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基姆拉尔森计算公式: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);
}
在公式中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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询