void display2();
int main();
三、主要流程图
四、运行及调试结果
1、 各步运行结果截图与说明
计算日期减天数
输入当前日期,输入要减去的天数,即可显示得到的新的日期。 计算日期加天数
输入当前日期,输入要加上的天数,即可显示得到的新的日期。 计算两日期相差的天数
分别输入两个日期,按回车键,即可显示两日期相差的天数。 显示月历
输入要显示的月历的年份和月份,按回车键,即可显示该年该月的月历。
显示年历
输入要显示的年历的年份,按回车键,即可显示该年的年历。
2、 调试及解决问题
五、小结及感悟
六、源程序
# include
# include
# include
# include
using namespace std;
namespace{
constint DAYS_BEFORE_MONTH[]=
{0,31,59,90,120,151,181,212,243,273,304,334};//存储平年中的某个月1日之前有多少天。
}
void menu(){
cout
cout
cout
cout
cout
cout
cout
}
voidgoback()
{
getchar();
cout
cout
getchar();
system("cls");
menu();
}
class Date{
public:
Date(){};//无参的构造函数
Date(intnewyear,intnewmonth,intnewday):
year(newyear),month(newmonth),day(newday){}
Date operator+(int days);
Date operator-(int days);
int operator-(Date &c);
voiddisplayMonth();
voiddisplayYear();
void display()
{cout
intyear,month,day;
int leap(int year0);
intdton();
};
int Date::leap(int year0){
if((year0%4==0&&year0%100!=0)||year0%400==0)
return 1;
else return 0;
}
int Date::dton(){
int days;
int years=year-1;
days=years*365+years/4-years/100+years/400+DAYS_BEFORE_MONTH[month-1]+day;
if(leap(year)==1&&month>2)days++;//考虑闰年时,若月份大于2,都加一天。
return days;
}
Date Date::operator+(int days){
while(days!=0){
day++;
if((month==1||month==3||month==5||month==7||month==8||month
==10||month==12)&&days>31){
}
Date r;
r.year=year;
r.month=month;
r.day=day;
return r; } else if(month==2&&leap(year)==1&&day>29){ } else if(month==2&&leap(year)==0&&day>28){ } else if(day>30){ } if(month>12){ } days--; year+=1; month=1; month+=1; day=1; month+=1; day=1; month+=1; day=1; month+=1; day=1;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-20.html
到时候什么国际法