您的位置:首页 > 其它

输入一个日期,计算前一天的日期

2012-11-03 17:01 477 查看
#include<iostream>
#include<string>
using namespace std;
class date  //定义Date类
{
private:
int day;
int month;
int year;
public:
date();     //无参构造函数
date(int,int,int);  //有参构造函数
void prevdate();   //prevdate函数用于计算上前一天的日期
void setdate(int,int,int);   //setdate函数用于设定Date类对象成员的值
};
date::date(int year,int month,int day)  //有参构造函数
{
this->year=year;
this->month=month;
this->day=day;
}
void date::setdate(int year,int month,int day)  //setdate函数
{
this->year=year;
this->month=month;
this->day=day;
}
void date::prevdate()   //prevdate函数,计算前一天日期
{
int prevday;
int prevmonth;
int prevyear;
if(day==1)
{
switch (month)  //当日期为1时 判断各个月份的情况
{
case 2:case 4:case 6:case 8:case 9:case 11:
prevday=31;
prevmonth=month-1;
prevyear=year;
break;
case 5:case 7:case 10:case 12:
prevday=30;
prevmonth=month-1;
prevyear=year;
break;
case 3:
if(((year%4==0)&&(year%100!=0))||(year%400==0))
{
prevday=29;
prevmonth=2;
prevyear=year;
}
else
{
prevday=28;
prevmonth=2;
prevyear=year;
}
break;
case 1:
prevday=31;
prevmonth=12;
prevyear=year-1;
break;
}
}
else
{
prevday=day-1;
prevmonth=month;
prevyear=year;
}
cout<<"The prevdate is "<<prevyear<<" "<<prevmonth<<" "<<prevday<<endl;

}
int main()
{
int year,month,day;
while(cin>>year>>month>>day) //输入数据
{
if(year<0)//判断非法日期输入
{
cout<<"Date error!Please input again!"<<endl;
continue;
}
else
{
switch (month)
{
case 1:case 3:case 5:case 7:case 8:case 10: case 12:
if(day<1||day>31)
{
cout<<"Date error!Please input again!"<<endl;
continue;
}
break;
case 4:case 6:case 9:case 11:
if(day<1||day>30)
{
cout<<"Date error!Please input again!"<<endl;
continue;
}
break;
case 2:
if((year%4==0&&year%100!=0)||year%400==0)
{
if(day<1||day>29)
{
cout<<"Date error!Please input again!"<<endl;
continue;
}
}
else
{
if(day<1||day>28)
{
cout<<"Date error!Please input again!"<<endl;
continue;
}
}
break;
default:
cout<<"Date error!Please input again!"<<endl;
continue;
break;
}
}
date Date(year,month,day);
Date.prevdate();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐