c++编程那天是星期几(构造与析构)
题目描述完成如下所示的CDate类中构造函数和其它成员函数的定义,并编写程序实现按下列格式打印某个日期的功能:mm/dd/yyyy,星期。(提示:计算某个日期(day,m...
题目描述
完成如下所示的CDate类中构造函数和其它成员函数的定义,并编写程序实现按下列格式打印某个日期的功能:mm/dd/yyyy, 星期。
(提示:计算某个日期(day, month, year)为星期几的公式如下:
week = (day + 2*month +
3*(month+1)/5 + year + year/4 - y/100 + year/400) % 7 +
1;
其中,如果month实际为1或2,则计算时公式里month的值取13或14,而year的值取其实际值减1的值)。
class CDate
{
public:
void print();
void
getWeekofDay();
private:
int month;
int day;
int year;
int week;
};
输入
日期个数
第一个日期
第二个日期
.......
输出
日期1月/日期1日/日期1年, 日期1星期
日期2月/日期2日/日期2年, 日期2星期
......
样例输入
3 1949 10 1 2015 1 1 2011 11
11
样例输出
10/1/1949, Saturday 1/1/2015, Thursday
11/11/2011, Friday 展开
完成如下所示的CDate类中构造函数和其它成员函数的定义,并编写程序实现按下列格式打印某个日期的功能:mm/dd/yyyy, 星期。
(提示:计算某个日期(day, month, year)为星期几的公式如下:
week = (day + 2*month +
3*(month+1)/5 + year + year/4 - y/100 + year/400) % 7 +
1;
其中,如果month实际为1或2,则计算时公式里month的值取13或14,而year的值取其实际值减1的值)。
class CDate
{
public:
void print();
void
getWeekofDay();
private:
int month;
int day;
int year;
int week;
};
输入
日期个数
第一个日期
第二个日期
.......
输出
日期1月/日期1日/日期1年, 日期1星期
日期2月/日期2日/日期2年, 日期2星期
......
样例输入
3 1949 10 1 2015 1 1 2011 11
11
样例输出
10/1/1949, Saturday 1/1/2015, Thursday
11/11/2011, Friday 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
1个回答
展开全部
CDate::CDate(int m_month,int m_day,int m_year)
{
day = m_day;
month = m_month;
year = m_year;
}
void CDate::getWeekofDay()
{
tmp_month = month +12;
tmp_year = year -1;
week = (day + 2*tmp_month + 3*(tmp_month +1)/5 + tmp_year + tmp_year /4 - tmp_year /100 + tmp_year /400) % 7 +1;
}
void CDate::print()
{
switch (week)
{
case 1:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Monday";
break;
case 2:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Tuesday";
break;
case 3:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Wednesay";
break;
case 4:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Thursday ";
break;
case 5:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Friday";
break;
case 6:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Saturday ";
break;
default:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Sunday ";
break;
}
}
{
day = m_day;
month = m_month;
year = m_year;
}
void CDate::getWeekofDay()
{
tmp_month = month +12;
tmp_year = year -1;
week = (day + 2*tmp_month + 3*(tmp_month +1)/5 + tmp_year + tmp_year /4 - tmp_year /100 + tmp_year /400) % 7 +1;
}
void CDate::print()
{
switch (week)
{
case 1:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Monday";
break;
case 2:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Tuesday";
break;
case 3:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Wednesay";
break;
case 4:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Thursday ";
break;
case 5:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Friday";
break;
case 6:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Saturday ";
break;
default:
cout<<month<<"/"<<day<<"/"<<year<<","<<"Sunday ";
break;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询