You are on page 1of 3

#include<iostream> #include<conio.h> #include<stdio.

h> using namespace std; struct ngaythangnam{ unsigned int ngay; unsigned int thang; unsigned int nam; }; ngaythangnam time1,time2,newtime; int thang31[7]={1,3,5,7,8,10,12}; void nhap() { cout<<"Enter the time1:"; cin>>time1.ngay>>time1.thang>>time1.nam; cout<<"Enter the time2:"; cin>>time2.ngay>>time2.thang>>time2.nam; } int ktnamnhuan(unsigned int nam) { return (nam %4 ==0 && ((nam %100 !=0) (nam %400==0))); } int ktthang31(int thang) { int j=0; while((j<7)&&(thang!=thang31[j])) j++; if(j<7) return 1; else return 0; } ngaythangnam ngaycong(ngaythangnam newtime,int k) { ngaythangnam d; d.nam=newtime.nam;d.thang=newtime.thang; d.ngay=newtime.ngay+k; if(ktthang31(d.thang)) { if(d.ngay>31) { d.thang=d.thang+d.ngay/31;d.ngay=d.ngay%31; if(d.thang>12) { d.nam=d.nam+d.thang/12;d.thang=d.thang%12; } } } else { if(d.thang==2) { if(ktnamnhuan(d.thang)) { if(d.ngay>29) { d.thang++;d.ngay=d.ngay-29; if(d.thang>12) { d.nam=d.nam+d.thang/12;d.thang=d.thang%12;} } } else { if(d.ngay>28)

{ d.thang++;d.ngay=d.ngay-28; if(d.thang>12) {d.nam++;d.thang=d.thang-12; if (d.thang==0) { d.thang=d.thang+1; } else d.thang=d.thang%12; } } } } else { if(d.ngay>30) { d.thang=d.thang+d.ngay/30;d.ngay=d.ngay%30; if(d.thang>12) { d.nam=d.nam+d.thang/12; d.thang=d.thang%12; } } } } return d; } int ngaytrongnam(ngaythangnam d) { int Nngay=d.ngay; for(int i=1;i<d.thang;i++) { if(ktthang31(i))Nngay=Nngay+31; else { if(i==2) { if(ktnamnhuan(d.nam)) Nngay+=29; else Nngay+=28; } else Nngay+=30; } } return Nngay; } int ngaytru(ngaythangnam d1,ngaythangnam d2) { { int d=0;long kc=0; int max,min; if(d1.nam>d2.nam) { max=d1.nam; min=d2.nam; } else { min=d1.nam; max=d2.nam; } for(int i=min;i<=max;i++)

if(ktnamnhuan(i)) d++; int demnam=max-min; kc=demnam*365; kc=kc+d; kc=kc+ngaytrongnam(d2); kc=kc-ngaytrongnam(d1); return (kc-1); } } void xuat(ngaythangnam d) { cout<<d.ngay<<"/"<<d.thang<<"/"<<d.nam; } void main() { int k; int kc; nhap(); cout<<"\ntime1:"; xuat(time1); if(ktnamnhuan(time1.nam)) { cout<<" La nam nhuan"; } else { cout<<" Nam khong nhuan"; } cout<<"\ntime2:"; xuat(time2); if(ktnamnhuan(time2.nam)) { cout<<" La nam nhuan"; } else { cout<<" Nam khong nhuan"; } kc=ngaytru(time1,time2); cout<<"\nKhoang thoi gian chenh lech la:"<<kc<<"ngay\n"; cout<<"nhap vao so ngay can cong:"; cin>>k; newtime=ngaycong(time1,k); cout<<"time1+so ngay moi:\n"; xuat(newtime); if(ktnamnhuan(newtime.nam)) { cout<<"\nNam moi cong vao la nam nhuan"; } else { cout<<"\nNam moi cong vao la nam khong nhuan"; } getch(); }

You might also like