⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 computedaybydate.cpp

📁 C++输入年月日
💻 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 + -