// file.h nhé các bạn thân yêu của tui
#pragma once
#include<iostream>
#include<fstream>
using namespace std;
class CNgay
{
private:
int ngay ,thang ,nam ;
public:
CNgay(void);// Khởi tạo mặc định nhe các bạn
CNgay(int ,int ,int );// khởi tạo có tham số né các bạn
CNgay(const CNgay &); // khởi tạo sao chép nhé các bạn
~CNgay(void);// hàm hủy nhé các bán ở bàn này thì không cần mấy đâu ghi cho có zay thuj
///// ta cài phương thức nhập xuất cho nó các bạn nhé
friend istream& operator>>(istream&,CNgay &);// phương thức nhập xuất ngày nhé các bạn
friend ostream& operator<<(ostream&,CNgay );// phương thức xuất nhé các bạn
// bây giờ ta qua phần so sánh 2 ngày với nhau nhé các bạn
CNgay operator=(CNgay );//
bool operator>(CNgay );
bool operator<(CNgay );
bool operator>=(CNgay );
bool operator<=(CNgay );
bool operator==(CNgay );
bool operator!=(CNgay );
CNgay operator+(CNgay );
CNgay operator-(CNgay );
// Bây giờ ta qua toán tử +=,-= nhá các bạn
CNgay operator+=(CNgay );
CNgay operator-=(CNgay );
// bây giờ ta qua toán tử thang và giảm 1 ngày nhé các bạn
// tăng trước nhé nhé các bạn
CNgay operator++();
/// tăng sau nhé cac bạn
CNgay operator++(int );// tham
// bay giờ là giảm nhé các bạn
// giảm trước rồi gán nghĩa là cà 2 bằng nhau nhé các bác
CNgay operator--();
// giam sau rồi gán qua nhé các bác
CNgay operator--(int );
};
// file .cpp nhe cac bạn thân yêu của tui
#include "Ngay.h"
CNgay::CNgay(void)
{
ngay=1;
thang=1;
nam=1;
}
CNgay::CNgay(int n,int t,int z)// khởi tạo có tham số
{
ngay=n;
thang=t;
nam=z;
}
CNgay::CNgay(const CNgay &a)
{
ngay=a.ngay;
thang=a.thang;
nam=a.nam;
}
CNgay CNgay::operator=(CNgay a)
{
ngay=a.ngay;
thang=a.thang;
nam=a.nam;
return *this;
}
// phương thức nhập xuất cho nó nè các bạn
ostream& operator<<(ostream &os,CNgay a)
{
os<<a.ngay<<"/"<<a.thang<<"/"<<a.nam;
return os;
}
istream& operator>>(istream &is,CNgay &a)
{ int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(a.nam%4==0&&a.nam%100!=0||a.nam%400==0)
thangnam[1]=29;
do{
cout<<"
Nhap ngay: ";
is>>a.ngay;
if(a.ngay>thangnam[a.thang-1])
{
cout<<"
Loi xin kiem tra lai ngay vua nhap !";
}
}while(a.ngay>thangnam[a.thang-1]);
do{
cout<<"
Nhap thang: ";
is>>a.thang;
if(a.thang>12)
{
cout<<"
Loi thang xin kiem tra lai ! ";
}
}while(a.thang>12);
cout<<"
Nhap nam: ";
is>>a.nam;
return is;
}
bool CNgay::operator>(CNgay a)
{
if(nam>a.nam)
{
return true;
}
else
{
if(thang>a.thang)
{
return true;
}
else
{
if(ngay>a.ngay)
{
return true;
}
}
}
return false;
}
bool CNgay::operator<(CNgay a)
{
if(nam<a.nam)
{
return true;
}
else
{
if(thang<a.thang)
{
return true;
}
else
{
if(ngay<a.ngay)
{
return true;
}
}
}
return false;
}
bool CNgay::operator>=(CNgay a)
{
if(nam>=a.nam)
{
return true;
}
else
{
if(thang>=a.thang)
{
return true;
}
else
{
if(ngay>=a.ngay)
{
return true;
}
}
}
return false;
}
bool CNgay::operator<=(CNgay a)
{if(nam<=a.nam)
{
return true;
}
else
{
if(thang<=a.thang)
{
return true;
}
else
{
if(ngay<=a.ngay)
{
return true;
}
}
}
return false;
}
// bây giờ là == nhé
bool CNgay::operator==(CNgay a)
{
return (ngay+thang+nam)==(a.ngay+a.thang+a.nam);
}
bool CNgay::operator!=(CNgay a)
{
return (ngay+thang+nam)!=(a.ngay+a.thang+a.nam);
}
// bây giờ ta qua toán tử cộng nhé các bạn
CNgay CNgay::operator+(CNgay a)
{
int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(nam%4==0&&nam%100!=0||nam%400==0)
thangnam[1]=29;
CNgay b;
b.ngay=ngay+a.ngay;
b.thang=thang+a.thang;
b.nam=nam+a.nam;
if(b.ngay>thangnam[thang-1])
{
b.ngay-=thangnam[thang-1];
if(b.ngay==0)
{
b.ngay=1;
}
b.thang+=1;
}
if(b.thang>12)
{
b.thang-=12;
if(b.thang==0)
{
b.thang=1;
}
b.nam+=1;
}
return b;
}
// bây giờ ta qua phan62n trừ nhé các bạn thân yêu
CNgay CNgay::operator-(CNgay a)
{
int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(nam%4==0&&nam%100!=0||nam%400==0)
thangnam[1]=29;
CNgay b;
b.ngay=ngay-a.ngay;
b.thang=thang-a.thang;
b.nam=nam-a.nam;
if(b.thang<0)
{
b.thang=12+(thang-a.thang);
b.nam-=1;
}
if(b.ngay<0)
{
//b.ngay*=-1;
int k=b.ngay;
b.ngay=thangnam[thang-1]+k;
b.thang-=1;
if(b.thang<0)
{
//int f=(thang-2)+(12-a.thang);
//b.thang=f+1;
b.thang=12+(thang-a.thang);
b.nam-=1;
}
}
if(b.ngay==0)
{
b.ngay=thangnam[thang-1];
b.thang-=1;
if(b.thang==0)
{ b.thang=12;
b.nam-=1;
}
}
if(b.nam==0)
{
b.nam=0;
}
return b;
}
// bây giờ ta qua phần +=,-= nhé các bạn
CNgay CNgay::operator+=(CNgay a)
{
int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(nam%4==0&&nam%100!=0||nam%400==0)
thangnam[1]=29;
*this=this->operator+(a);
return *this;
}
CNgay CNgay::operator-=(CNgay a)
{
int thangnam[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(nam%4==0&&nam%100!=0||nam%400==0)
thangnam[1]=29;
*this=this->operator-(a);
return *this;
}
CNgay CNgay::operator++()
{
CNgay c(1,0,0);
*this=this->operator+(c);
return *this;
}
CNgay CNgay::operator++(int x)
{
CNgay item=*this;
CNgay c(1,0,0);
*this=this->operator+(c);
return item;
}
CNgay CNgay::operator--()
{
CNgay c(1,0,0);
*this=this->operator-(c);
return *this;
}
CNgay CNgay::operator--(int x)
{
CNgay item=*this;
CNgay c(1,0,0);
*this=this->operator-(c);
return item;
}
CNgay::~CNgay(void)
{
}
// file main nhe cac bạn thân yêu của tui
#include"Ngay.h"
int main()
{
/*CNgay a(1,2,1),b(1,1,4);
if(a>b)
{
cout<<"
a>b";
}
else
{
cout<<"a<b";
}*/
/*a-=b;
CNgay c=a-b;
cout<<endl;
cout<<a;
cout<<endl;
cout<<c;
*/
// tang 1ngay2 giảm 1 ngày nhé các bạn
//CNgay e(2,1,2013);
//CNgay a;
//a=e++;
//cout<<a;
//cout<<e;
// giảm nhé các bạn
// CNgay e(1,1,2013);
//CNgay a;
//a=e--;
//cout<<a;
//cout<<endl;
//cout<<e;
//CNgay q(1,6,1);
//CNgay s(1,1,2013);
//CNgay f= --s;
//cout<<f;
//cout<<endl;
//cout<<s;
CNgay a(1,1,2016),b(1,2,2010);
if(a>b)
{
cout<<"
Ngay a> ngay b";
}
else
{
cout<<"
Ngay b> ngay a";
}
CNgay c=a-b;
cout<<endl;
cout<<c;
system("pause");
return 0;
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.