本文最后更新于1310天前,其中的信息可能已经有所发展或是发生改变。
定义一个日期类CData,其有数据成员year,month,day,函数成员有构造函数,析构函数,复制构造函数,显示日信息函数display(年月日星期). 函数Getweek是返回改日期是英文单词表示的星期几。从键盘读入一个日期,先显示21世纪的第一天日期的信息(已知2000年1月1号是星期六),然后再建立一个新日期的信息。 主函数如下无需重写: //主函数 int main() {
int y,m,d; cin>>y>>m>>d; CDate d0; d0.display(); cout<<endl; CDate d1(y,m,d); d1.display();}
输入格式:
输入一个日期(2000-1-1起的一个日期,保证输入日期合法有效) 之间以空格隔开
输出格式:
先输出21世纪第一天的日期信息 而后输出输入指定日期的信息
输入样例:
在这里给出一组输入。例如:
2000 1 31
输出样例:
在这里给出相应的输出。例如:
The first day of the 21st century:
2000-1-1:Saturday
Create a new date :
2000-1-31:Monday
WriteUp:
#include<iostream>
using namespace std;
class CDate{
public:
int Year;
int Month;
int Day;
public: void display();
public: void getweek(int y,int m,int d);
CDate(int year,int month,int day);// 这是构造函数
};
CDate::CDate(int year,int month,int day){
Year =year;
Month=month;
Day =day;
}
void CDate::display(){
cout<<"Create a new date :"<<endl;
getweek(Year,Month,Day);
}
void CDate::getweek(int y,int m,int d){
if(m==1||m==2) //把一月和二月换算成上一年的十三月和是四月
{
m+=12;
y--;
}
int Week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(Week)
{
case 0: printf("%d-%d-%d",Year,Month,Day); cout<< ":Monday" << endl; break;
case 1: printf("%d-%d-%d",Year,Month,Day); cout<< ":Tuesday" << endl; break;
case 2: printf("%d-%d-%d",Year,Month,Day); cout<< ":Wednesday" << endl; break;
case 3: printf("%d-%d-%d",Year,Month,Day); cout<< ":Thursday" << endl; break;
case 4: printf("%d-%d-%d",Year,Month,Day); cout<< ":Friday" << endl; break;
case 5: printf("%d-%d-%d",Year,Month,Day); cout<< ":Saturday" << endl; break;
case 6: printf("%d-%d-%d",Year,Month,Day); cout<< ":Sunday" << endl; break;
}
}
int main() {
int y,m,d;
cin>>y>>m>>d;
cout<< "The first day of the 21st century:"<<endl;
cout<<"2000-1-1:Saturday"<<endl;
CDate d1(y,m,d);
d1.display();
}
点击数:103