Cài đặt lớp  Date   gồm :

Các thuộc tính:   ngay, thang, nam.

Các hàm thành viên gồm :

+ Hàm xây dựng.

+ Hàm nhập giá trị và hàm hiện thông tin ngày ra màn hình.

+ Hàm kiểm tra xem ngày có hợp lệ hay không ?                  int  HopLe();

   Chẳng hạn:  Ngày31/6/2000hay29/2/1999là không hợp lệ.

+ Hàm cộng 1 Date với 1 ngày, kết quả là ngày hôm sau:     Date  Cong();

Ví dụ:   Gọi hàm Cong() trên đối tượng ngày 30/06/2007  là  01/07/2007

+ Hàm cộng 1 Date với số ngày  n   nào đó:              Date  Cong(int  n);

Ví dụ: ngày15/6/2000cộng thêm 20 ngày là ngày05/7/2000

Viết hàm main() khai thác lớp vừa định nghĩa.

#include <iostream.h>

class Date {
		int	 ngay, thang, nam;
	public:
		Date() {
			ngay = 1; thang = 1; nam = 2000;
		}
		Date(int	 d, int  m, int y) {
			ngay = d; thang = m; nam = y;
		}
		void Nhap();
		void HienThi() {
			cout<<ngay<<"/"<<thang<<"/"<<nam;
		}
		int		HopLe();
		Date  Cong();
		Date  Cong(int  n);
};

void Date::Nhap() {
		while(1) {
			cout<<"Nhap ngay: "; cin>>ngay;
			cout<<"Nhap thang: "; cin>>thang;
			cout<<"Nhap nam: "; cin>>nam;
			if(HopLe())		break;
				cout<<"Nhap khong hop le - Nhap lai !!! "<<endl;
		}
	}

int Date::HopLe() { if(ngay<=0 || thang<=0 || thang>12) return 0; if(thang==2 && nam%4==0) return (ngay<=29); int songay[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return (ngay <= songay[ thang ] );
	/* if (thang == 2)
			return  (ngay<=28);
	 else
			if (thang==4 || thang == 6 || thang == 9 || thang == 11)
				return (ngay <= 30);
			else
				return (ngay <= 31);
	*/
}

Date Date::Cong() { Date kq = *this; if(kq.ngay==28 && kq.thang ==2 && kq.nam%4==0) return Date(29,2,nam); kq.ngay ++; int songay[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (kq.ngay > songay[kq.thang]) { kq.thang++; kq.ngay = 1; } if (kq.thang > 12 ) { kq.nam ++; kq.thang = 1; } return kq; }

Date  Date::Cong(int  n) {
	Date	kq = *this;
	for(int i=0; i<n; i++)
		kq = kq.Cong();
	return kq;
}

void main() {
	Date	d1;
	cout<<"Nhap gia tri: "<<endl;
	d1.Nhap();
	d1.HienThi();
	cout<<"Nhap so ngay can cong them: ";
	int		n; cin>>n;
	cout<<"Ngay ket qua sau khi cong them "<<n<<" ngay: ";
	d1.Cong(n).HienThi();
}