一个输入日期并显示自增一天日期的代码。
好久没发帖子了。发一个上课时候的练习。
程序代码:// 显示日期.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<iomanip>
using namespace std;
class Date
{
int year,month,day;
public:
void set(int y,int m,int d);
bool add();
bool isLeapYear();
void print();
};
void Date::set(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
bool Date::isLeapYear()
{
return (year%4==0 && year%100!=0)||(year%400==0);
}
bool Date::add()
{
++day;
int max_1,max_2,max_3,max_4,max_5,max_6,max_7,max_8,max_9,max_10,max_11,max_12,max_day;
if(isLeapYear())
{max_1=31;
max_2=29;
max_3=31;
max_4=30;
max_5=31;
max_6=30;
max_7=31;
max_8=31;
max_9=30;
max_10=31;
max_11=30;
max_12=31;
}
else
{
max_1=31;
max_2=28;
max_3=31;
max_4=30;
max_5=31;
max_6=30;
max_7=31;
max_8=31;
max_9=30;
max_10=31;
max_11=30;
max_12=31;
}
switch(month)
{case 1:
max_day=max_1;
break;
case 2:
max_day=max_2;
break;
case 3:
max_day=max_3;
break;
case 4:
max_day=max_4;
break;
case 5:
max_day=max_5;
break;
case 6:
max_day=max_6;
break;
case 7:
max_day=max_7;
break;
case 8:
max_day=max_8;
break;
case 9:
max_day=max_9;
break;
case 10:
max_day=max_10;
break;
case 11:
max_day=max_11;
break;
case 12:
max_day=max_12;
break;
//default cout<<"错误";//
}
if(day>max_day)
{
day=1;
++month;
if(month>12)
{
++year;
month=1;
}
}
return 0;
}
void Date::print()
{
cout<<setfill('0');
cout<<setw(4)<<year<<'/'<<setw(2)<<month<<'/'<<setw(2)<<day<<'\n';
cout<<setfill(' ');
}
int main()
{
Date d;
cout<<"请输入一个四位的阿拉伯数字表示的年,一个两位阿拉伯数字表示的月,一个两位的阿拉伯数字表示的日,并用回车分别输入"<<'\n';
int s_y,s_m,s_d;
cin>>setw(4)>>s_y>>setw(2)>>s_m>>setw(2)>>s_d;
d.set(s_y,s_m,s_d);
d.add();
d.print();
system("pause");
}








