#include "Data.h" Data::Data() { } Data::~Data() { } bool Data::kiem_tra_nhuan(Time date) { // nnăm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 if ((date.nam % 400) == 0 || ((date.nam % 4 == 0) && (date.nam % 100 != 0))) return true; else return false; } void Data::nhap() { cout << endl << "nhap ngay: "; cin >> time.ngay; cout << endl << "nhap thang: "; cin >> time.thang; cout << endl << "nhap nam: "; cin >> time.nam; } int Data::so_ngay_cua_thang(Time date) { if (date.thang == 1 || date.thang == 3 || date.thang == 5 || date.thang == 7 || date.thang == 8 || date.thang == 10 || date.thang == 12) { return 31; } if (date.thang == 4 || date.thang == 6 || date.thang == 9 || date.thang == 11) { return 30; } else { bool k = kiem_tra_nhuan(date); if (k) return 29; else return 28; } } int Data::hieu_so_ngay(Time date1, Time date2) { int ss; if (date1.nam > date2.nam) { ss = 1; } else if (date1.nam < date2.nam) { ss = -1; } else if (date1.thang > date2.thang) { ss = 1; } else if (date1.thang < date2.thang) { ss = -1; } else if (date1.ngay > date2.ngay) { ss = 1; } else if (date1.ngay < date2.ngay) { ss = -1; } else { ss = 0; } if (ss == -1) { swap(date1,date2); } Time th; int ngay; th.nam = date1.nam - date2.nam; th.thang = date1.thang - date2.thang; th.ngay = date1.ngay - date2.ngay; if (th.nam < 1) { if (th.thang == 0) { return th.ngay; } } th.nam = date2.nam; th.thang = date2.thang; th.ngay = date2.ngay; ngay = 0; do { int ktr = so_ngay_cua_thang(th); if (th.thang == date2.thang) { ngay += (ktr - date2.ngay + 1); } else if (th.thang == date1.thang) { ngay += date1.ngay-1; } else { ngay += ktr; } ++th.thang; if (th.thang > 12) { th.thang = 1; ++th.nam; } } while (th.thang <= date1.thang&&th.nam <= date1.nam); return ngay; }