📄 computedaybydate.cpp
字号:
#include<iostream.h>
#include<math.h>
class Tdate
{int yy,mm,dd;
public:
Tdate(){}
Tdate(Tdate &x)
{yy=x.yy;mm=x.mm;dd=x.dd;
}
Tdate(int x,int y,int z,Tdate a)
{a.yy=x;a.mm=y;a.dd=z;
}
int leapyear()
{int leap;
cout<<"请输入年份:";
cin>>yy;
while(yy<=0)
{cout<<"您输入的年份不存在,请重新输入:";cin>>yy;}
if((yy%4==0&&yy%100!=0)||(yy%400==0))
leap=1;
else leap=0;
return leap;
}
void setdate()
{
if(leapyear()==1)
{
cout<<"请输入月份:";cin>>mm;
while(mm<1||mm>12)
{cout<<"您输入的月份不存在,请重新输入月份:";cin>>mm;cout<<"\n";}
if(mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12)
{cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>31)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
if(mm==4||mm==6||mm==9||mm==11)
{cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>30)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
if(mm==2)
{cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>29)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
}
else
{
cout<<"请输入月份:";cin>>mm;
while(mm<1||mm>12)
{cout<<"您输入的月份不存在,请重新输入月份:";cin>>mm;cout<<"\n";}
if(mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12)
{cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>31)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
if(mm==4||mm==6||mm==9||mm==11)
{cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>30)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
if(mm==2)
{ cout<<"请输入天数:";cin>>dd;
while(dd<0||dd>28)
{cout<<"您输入的天数不存在,请重新输入天数:";cin>>dd;cout<<endl;}
}
}
}
void outdate()
{
cout<<yy<<"年"<<mm<<"月"<<dd<<"日";
}
void week(Tdate x)
{int a=0,i,b;long sum1,sum2,sum;
cout<<"请输入一个日期,计算它是星期几:"<<endl;
x.setdate();
if(x.yy>1900)
{for(i=1900;i<x.yy;i++)
if((i%4==0&&i%100!=0)||(i%400==0))
a++;
if((x.yy%4==0&&x.yy%100!=0)||(x.yy%400==0))
switch(x.mm)
{
case 1:sum1=x.dd;break;
case 2:sum1=x.dd+31;break;
case 3:sum1=x.dd+60;break;
case 4:sum1=x.dd+91;break;
case 5:sum1=x.dd+121;break;
case 6:sum1=x.dd+152;break;
case 7:sum1=x.dd+182;break;
case 8:sum1=x.dd+213;break;
case 9:sum1=x.dd+244;break;
case 10:sum1=x.dd+274;break;
case 11:sum1=x.dd+305;break;
case 12:sum1=x.dd+335;break;
}
else
switch(x.mm)
{
case 1:sum1=x.dd;break;
case 2:sum1=x.dd+31;break;
case 3:sum1=x.dd+59;break;
case 4:sum1=x.dd+90;break;
case 5:sum1=x.dd+120;break;
case 6:sum1=x.dd+151;break;
case 7:sum1=x.dd+181;break;
case 8:sum1=x.dd+212;break;
case 9:sum1=x.dd+243;break;
case 10:sum1=x.dd+273;break;
case 11:sum1=x.dd+304;break;
case 12:sum1=x.dd+334;break;
}
sum=a*366+(x.yy-1900-a)*365+sum1;
b=sum%7;
x.outdate();cout<<",";
if(b==0)b=7;
switch(b)
{
case 1:cout<<"星期一";break;
case 2:cout<<"星期二";break;
case 3:cout<<"星期三";break;
case 4:cout<<"星期四";break;
case 5:cout<<"星期五";break;
case 6:cout<<"星期六";break;
case 7:cout<<"星期日";break;
default:break;
}
}
else
{
for(i=1900;i>x.yy;i--)
if((i%4==0&&i%100!=0)||(i%400==0))
a++;
if((x.yy%4==0&&x.yy%100!=0)||(x.yy%400==0))
switch(x.mm)
{
case 1:sum2=x.dd;break;
case 2:sum2=x.dd+31;break;
case 3:sum2=x.dd+60;break;
case 4:sum2=x.dd+91;break;
case 5:sum2=x.dd+121;break;
case 6:sum2=x.dd+152;break;
case 7:sum2=x.dd+182;break;
case 8:sum2=x.dd+213;break;
case 9:sum2=x.dd+244;break;
case 10:sum2=x.dd+274;break;
case 11:sum2=x.dd+305;break;
case 12:sum2=x.dd+335;break;
}
else
switch(x.mm)
{
case 1:sum2=x.dd;break;
case 2:sum2=x.dd+31;break;
case 3:sum2=x.dd+59;break;
case 4:sum2=x.dd+90;break;
case 5:sum2=x.dd+120;break;
case 6:sum2=x.dd+151;break;
case 7:sum2=x.dd+181;break;
case 8:sum2=x.dd+212;break;
case 9:sum2=x.dd+243;break;
case 10:sum2=x.dd+273;break;
case 11:sum2=x.dd+304;break;
case 12:sum2=x.dd+334;break;
}
sum=a*366+(1900-x.yy-a)*365+sum2;
b=sum%7;
x.outdate();cout<<",";
if(b==0)b=7;
switch(b)
{
case 1:cout<<"星期一";break;
case 2:cout<<"星期二";break;
case 3:cout<<"星期三";break;
case 4:cout<<"星期四";break;
case 5:cout<<"星期五";break;
case 6:cout<<"星期六";break;
case 7:cout<<"星期日";break;
default:break;
}
}
}
~Tdate(){}
};
void main()
{
Tdate b;
b.week(b);
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -