65,208
社区成员
发帖
与我相关
我的任务
分享#include <iostream>
#include <string>
using namespace std;
#define BEGINYEAR 1970
#define BEGINMONTH 1
#define BEGINDAY 1
#define BEGINWEEK 4
const string weeks[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
const int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int getDays(int y,int m,int d)//返回y-m-d到begin日期的天数
{
if (y<BEGINYEAR || m<BEGINMONTH || d<BEGINDAY)
{
return -1;
}
int countday=0;
for (int i=BEGINYEAR;i<y;i++)
{
if (i%4==0 && i%100!=0 || i%400==0)//闰年
{
countday+=1;
}
countday+=365;
}
for (int j=0;j<m-1;j++)
{
countday+=days[j];
if (j==1)//第二月
{
countday+=(y%4==0&&y%100!=0||y%400==0)?1:0;
}
}
return countday+d-1;
}
void main()
{
int y,m,d;
cout<<"请输入年月日:";
cin>>y>>m>>d;
cout<<"这是"<<weeks[(getDays(y,m,d)+BEGINWEEK-1)%7]<<endl;
}
晕~~~~~~~
你这
int d1=1970,d2=1,d3=5,n1=2008,n2=10,n3=1,b1,b2,b3,c3=0;
int i,e;
printf("please write down the day:");
if (b1%4==0&&d2==2&&d3>30)
printf("error");
else if(b1%4!=0&&d2==2&&d3>29)
printf("error");
else if(n2>12||n3>31)
printf("error");
这都是啥乱起八遭的?
对b1都没赋初值呢!
d1,d2,d3,n1,n2,n3,b1,b2,b3,c3都是干嘛的??
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#include "math.h"
int main(int argc, char* argv[])
{
int d1=1970,d2=1,d3=5,n1=2008,n2=11,n3=1,b1,b2,b3,c3=0;
int i,e;
printf("please write down the day:");
if (b1%4==0&&d2==2&&d3>30)
printf("error");
else if(b1%4!=0&&d2==2&&d3>29)
printf("error");
else if(n2>12||n3>31)
printf("error");
else
{
b1=n1-d1;
b2=n2-d2;
b3=n3-d3;
for(i=0;i <b1;i++)
{
if (i%4==0)
c3=c3+366;
else(i%4!=0) ;
c3=c3+365;
}
for (e=0;e <=b2;e++)
{
if(n1%4==0)
{
switch(e)
{
case 0 :break;
case 1 :c3=c3+31; break;
case 2 :c3=c3+29; break;
case 3 :c3=c3+31; break;
case 4 :c3=c3+30; break;
case 5 :c3=c3+31; break;
case 6 :c3=c3+30; break;
case 7 :c3=c3+31; break;
case 8 :c3=c3+31; break;
case 9 :c3=c3+30; break;
case 10 :c3=c3+31; break;
case 11 :c3=c3+30; break;
}
}
else(n1%4!=0);
{
switch(e)
{
case 0 :break;
case 1 :c3=c3+31; break;
case 2 :c3=c3+28; break;
case 3 :c3=c3+31; break;
case 4 :c3=c3+30; break;
case 5 :c3=c3+31; break;
case 6 :c3=c3+30; break;
case 7 :c3=c3+31; break;
case 8 :c3=c3+31; break;
case 9 :c3=c3+30; break;
case 10 :c3=c3+31; break;
case 11 :c3=c3+30; break;
}
}
}
c3=c3+b3;
i=c3%7;
switch(i)
{
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;
}
}
}
----------------------------------
output:
please write down the day:星期六
Press any key to continue
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#include "math.h"
int main(int argc, char* argv[])
{
int d1=1970,d2=1,d3=5,n1=2008,n2=11,n3=1,b1,b2,b3,c3=0;
int i,e;
printf("please write down the day:");
if (b1%4==0&&d2==2&&d3>30)
printf("error");
else if(b1%4!=0&&d2==2&&d3>29)
printf("error");
else if(n2>12||n3>31)
printf("error");
else
{
b1=n1-d1;
b2=n2-d2;
b3=n3-d3;
for(i=0;i <b1;i++)
{
if (i%4==0)
c3=c3+366;
else(i%4!=0) ;
c3=c3+365;
}
for (e=0;e <=b2;e++)
{
if(n1%4==0)
{
switch(e)
{
case 0 :break;
case 1 :c3=c3+31; break;
case 2 :c3=c3+29; break;
case 3 :c3=c3+31; break;
case 4 :c3=c3+30; break;
case 5 :c3=c3+31; break;
case 6 :c3=c3+30; break;
case 7 :c3=c3+31; break;
case 8 :c3=c3+31; break;
case 9 :c3=c3+30; break;
case 10 :c3=c3+31; break;
case 11 :c3=c3+30; break;
}
}
else(n1%4!=0);
{
switch(e)
{
case 0 :break;
case 1 :c3=c3+31; break;
case 2 :c3=c3+28; break;
case 3 :c3=c3+31; break;
case 4 :c3=c3+30; break;
case 5 :c3=c3+31; break;
case 6 :c3=c3+30; break;
case 7 :c3=c3+31; break;
case 8 :c3=c3+31; break;
case 9 :c3=c3+30; break;
case 10 :c3=c3+31; break;
case 11 :c3=c3+30; break;
}
}
}
c3=c3+b3;
i=c3%7;
switch(i)
{
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;
}
}
}
没问题啊!
1902年1-6我不知道周几,但是改改起始时间1970-1-5就好使!