发布网友 发布时间:2022-05-13 19:28
共4个回答
热心网友 时间:2022-04-24 14:19
兄弟,闲着没事,帮你做了一下,在VC6.0上调试通过
有什么不满意的,你自己再改改
//====================================
#include <iostream>
using namespace std;
//Date类的定义
class Date
{
public:
Date(){year=0;month=0;day=0;}
void Display();//输出函数声明
void AddOneDay();//加一天函数声明
void SetDay();//设置日期函数声明
friend bool Legal(int y, int m, int d);//声明判断日期是否合法函数为友元函数,因为成员函数调用了该函数
protected:
int year;
int month;
int day;
};
//=============================================
void Date::Display()
{
cout <<day <<"/" <<month <<"/" <<year <<endl;
}
//============================================
void Date::AddOneDay()
{
if(Legal(year,month,day+1))
day++;
else if(Legal(year,month+1,1))
month++,day=1;
else if(Legal(year+1,1,1))
day=1,month=1,year++;
}
//=======================================
void Date::SetDay()
{
int y;
int m;
int d;
cout<<"请输入年 月 日,中间用空格隔开:";
cin>>y>>m>>d;
while(!Legal(y,m,d))
{
cout<<"您输入的日期不合法,请重新设置:";
cin>>y>>m>>d;
}
year=y;
month=m;
day=d;
}
//===========================================
bool Legal(int y, int m, int d)
{
if(y>9999||y<1||d<1||m<1||m>12)
return false;
int dayLimit=31;
switch(m)
{
case 4:
case 6:
case 9:
case 11:
dayLimit--;
}
if(m==2) dayLimit = ((y%4==0&&y%100!=0)||y%400==0) ? 29 : 28;
return (d>dayLimit)? false : true;
}
//=================================================
void IsLeapYear()
{
int y;
cout<<"请输入要判断的年份:";
cin>>y;
if((y%4==0&&y%100!=0)||y%400==0)
cout<<y<<" 是闰年"<<endl;
else
cout<<y<<" 不是闰年"<<endl;
}
//===============================================
void Week()// 基姆拉尔森计算公式
{
int y;
int m;
int d;
cout<<"请输入年 月 日,中间用空格隔开:";
cin>>y>>m>>d;
while(!Legal(y,m,d))
{
cout<<"输入日期不合法!请重新输入日期:";
cin>>y>>m>>d;
}
if((m==1)||(m==2))
{
m+=12;
y--;
}
int week= int(((d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)+1)%7);
switch(week)
{
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()
{
cout<<"********************************************************************************\n";
cout<<"欢迎使用简单电子日历,请输入功能选择:(0-5)"<<endl<<endl;
cout<<"0.退出 1.设置日期 2.输出日期 3.日期加一天 4.查看任一天星期几 5.判断是否闰年"<<endl;
cout<<"********************************************************************************\n";
int num;
Date date;
cin>>num;//输入功能选择
if(!(num==0 ||num==1 || num==2 || num==3 || num==4 || num==5))
{
cout<<"您输入有误,请重新输入功能选择:(0-5)";
cin>>num;
}
else
{
do
{
if(num==0) break;
if(num==1) date.SetDay();
if(num==2) date.Display();
if(num==3)
{
cout<<"加一天前的日期:";
date.Display();
date.AddOneDay();//加一天
cout<<endl<<"加一天后的日期:";
date.Display();
}
if(num==4) Week();
if(num==5) IsLeapYear();
cout<<"********************************************************************************\n";
cout<<"欢迎使用简单电子日历,请输入功能选择:(0-5)"<<endl<<endl;
cout<<"0.退出 1.设置日期 2.输出日期 3.日期加一天 4.查看任一天星期几 5.判断是否闰年"<<endl;
cout<<"********************************************************************************\n";
cin>>num;
if(!(num==0 ||num==1 || num==2 || num==3 || num==4 || num==5))
{
cout<<"您输入有误,请重新输入功能选择:(0-5)";
cin>>num;
}
}while(num!=0);
}
cout<<"\t欢迎下次使用!"<<endl;
return 0;
}
你直接复制粘贴到你的VC6.0去调试
热心网友 时间:2022-04-24 15:37
设置日期是什么样的操作?有什么效果?热心网友 时间:2022-04-24 17:12
唉,热心网友 时间:2022-04-24 19:03
同情楼主,闲人帮帮他吧!