hoangnhut24ht_banking- New Member
- Giới tính : Bài gửi : 3
Tổng Điểm : 20
Điểm Thưởng : 2
Sinh Nhật : 08/01/1990 Bị Dụ Dỗ : 12/09/2009
Tuổi : 34
by hoangnhut24ht_banking 26/9/2009, 13:02
- Code:
//CAC HAM XU LI NGAY
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
class ngay
{
private:
int d,m,y; //day,month,year
public:
//KHAI BAO HAM:
ngay();
ngay(int pd,int pm,int py);
ngay(char *sngay);
void nhapd(int pd);
void nhapm(int pm);
void nhapy(int py);
void nhapdmy(int pd,int pm,int py);
void nhapdmy(char *sngay); //nhap ngay dang chuoi
int docd();
int docm();
int docy();
char *docdmy();
void docDMY();
int sngaycuathang(int pm,int py);
ngay ngaytruoc();
ngay ngaysau();
ngay operator -(int pn); //ngay tru so
ngay operator +(int pn);
int operator -(ngay pngay); //ngay tru ngay
int namnhuan(int py);
~ngay();
};
// CAI DAT HAM:
//HAM KHOI TAO:
ngay::ngay()
{
d=1;
m=1;
y=1900;
}
ngay::ngay(int pd,int pm,int py)
{
d=pd;
m=pm;
y=py;
}
ngay::ngay(char *sngay)
{
d=atoi(strtok(sngay,"/"));
m=atoi(strtok(NULL,"/"));
y=atoi(strtok(NULL,"/"));
}
//HAM CAP NHAT:
void ngay::nhapd(int pd)
{
d=pd;
}
void ngay::nhapm(int pm)
{
m=pm;
}
void ngay::nhapy(int py)
{
y=py;
}
void ngay::nhapdmy(int pd,int pm,int py)
{
d=pd;
m=pm;
y=py;
}
void ngay::nhapdmy(char *sngay)
{
d=atoi(strtok(sngay,"/"));
m=atoi(strtok(NULL,"/"));
y=atoi(strtok(NULL,"/"));
}
//HAM CUNG CAP THONG TIN:
int ngay::docd()
{
return d;
}
int ngay::docm()
{
return m;
}
int ngay::docy()
{
return y;
}
void ngay::docDMY()
{
printf("%i/%i/%i\n",d,m,y);
}
char *ngay::docdmy()
{
char dl[5],*s;
s=new char[15];
strcpy(s,itoa(d,dl,10));
strcat(s,"/");
strcat(s,itoa(m,dl,10));
strcat(s,"/");
strcat(s,itoa(y,dl,10));
return s;
}
//HAM TINH TOAN:
int ngay::sngaycuathang(int pm,int py)
{
int sn;
int namthuong[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int namnhuan[12]={31,29,31,30,31,30,31,31,30,31,30,31};
if(py%400==0||(py%4==0&&py%100!=0))
sn=namnhuan[pm-1];
else
sn=namthuong[pm-1];
return sn;
}
ngay ngay::ngaytruoc()
{
ngay kq(d,m,y);
kq.d=d-1;
if(kq.d<1)
{ if(m==1)
{ kq.d=31;
kq.m=12;
kq.y=y-1;
}
else
{ if(kq.m==2||kq.m==4||kq.m==6||kq.m==8||kq.m==9||kq.m==11)
{ kq.d=31;
kq.m=m-1;
kq.y=y;
}
else
{ kq.d=30;
kq.m=m-1;
kq.y=y;
}
}
}
else
{ kq.m=m;
kq.y=y;
}
return kq;
}
ngay ngay::ngaysau()
{
ngay kq(d,m,y);
kq.d=d+1;
if(kq.d>kq.sngaycuathang(m,y))
{ if(kq.m==12)
{ kq.d=1;
kq.m=1;
kq.y=y+1;
}
else
{ kq.d=1;
kq.m=m+1;
kq.y=y;
}
}
else
{ kq.m=m;
kq.y=y;
}
return kq;
}
ngay ngay::operator +(int pn)
{
ngay kq(d,m,y);
for(int i=0;i<pn;i++)
kq=kq.ngaysau();
return kq;
}
ngay ngay::operator -(int pn)
{
ngay kq(d,m,y);
for(int i=0;i<pn;i++)
kq=kq.ngaytruoc();
return kq;
}
int ngay::operator -(ngay pngay)
{
int t=0;
while(pngay.d!=d||pngay.m!=m||pngay.y!=y)
{
pngay=pngay.ngaysau();
t++;
}
return t;
}
//HAM PHA HUY
ngay::~ngay()
{
// printf("I Love U \n");
}
//CHUONG TRINH CHINH:
void main()
{
clrscr();
ngay ng1(1,1,2009),ng2("31/12/2009"),ng3("7/8/2009"),ng4,ng5;
ng4=ng1.ngaytruoc();
printf("\nngay truoc cua ngay: %s la: ",ng1.docdmy());
ng4.docDMY();
ng4=ng2.ngaysau();
printf("\nngay sau cua ngay: %s la: %s \n",ng2.docdmy(),ng4.docdmy());
ng4=ng3.ngaytruoc();
printf("\nngay truoc cua ngay: %s la: %s\n",ng3.docdmy(),ng4.docdmy());
ng4=ng3.ngaysau();
printf("\nngay sau cua ngay: %s la: %s \n",ng3.docdmy(),ng4.docdmy());
ng4=ng1+4;
printf("\nngay %s +4 la: %s \n",ng1.docdmy(),ng4.docdmy());
ng4=ng3-7;
printf("\nngay %s -7 la: %s \n",ng3.docdmy(),ng4.docdmy());
ng5=ng4;
printf("\nngay %s - %s = %i",ng3.docdmy(),ng5.docdmy(),(ng3-ng5));
getch();
}