- #include <iostream>
- #include <cstdio>
- using namespace std;
- typedef struct{ int y,m,d; }Date;
- void inputDate(Date &date);
- int ds_yearMonth(Date date);
- bool isLeapYear(int year);
- int main()
- {
- Date date1,date2;
- inputDate(date1);
- inputDate(date2);
- swap(date1,date2);
- cout<<date1.y<<" "<<date1.m<<" "<<date1.d<<endl;
- cout<<date2.y<<" "<<date2.m<<" "<<date2.d<<endl;
- return 0;
- }
- void inputDate(Date &date)
- {
- cout<<"请输入日期:";
- do
- {
- cin>>date.y>>date.m>>date.d;
- if(date.m<1||date.m>12||date.d<1||date.d>ds_yearMonth(date))
- cout<<"日期输入错误!请重新输入日期:";
- }while(date.m<1||date.m>12||date.d<1||date.d>ds_yearMonth(date));
- }
- int ds_yearMonth(Date date)
- {
- int ds;
- switch(date.m)
- {
- case 1:case 3:case 5:case 7:
- case 8:case 10:case 12:ds=31;break;
- case 4:case 6:case 9:case 11:ds=30;break;
- case 2:ds=isLeapYear(date.y)?29:28;break;
- }
- return ds;
- }
- bool isLeapYear(int year)
- {
- if(year%400==0||year%4==0&&year%100!=0)
- return true;
- return false;
- };
复制代码 |