一个输入日期并显示自增一天日期的代码。
好久没发帖子了。发一个上课时候的练习。程序代码:
// 显示日期.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"); }