PHP:
#include<iostream>
#include<cmath>
using namespace std;
int SoNgayTrongThang(int thang, int nam)
{
switch (thang)
{
case 2:
return ((nam%4 != 0 || nam%100 == 0 && nam%400 != 0)? 0 : 1)? 29 : 28;
case 4: case 6: case 9: case 11:
return 30;
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
default:
return 0;
}
return -1;
}
int main()
{
/* code trong main */
int ng1, th1, nm1;
int ng2, th2, nm2;
int i,soNgay1,soNgay2;
cout << "Nhap ngay thu nhat: ";cin >> ng1;
cout << "Nhap thang thu nhat: ";cin >> th1;
cout << "Nhap nam thu nhat: ";cin >> nm1;
cout << "Nhap ngay thu hai: ";cin >> ng2;
cout << "Nhap thang thu hai: ";cin >> th2;
cout << "Nhap nam thu hai: ";cin >> nm2;
soNgay1 = ng1; /* bắt đầu từ ngày và cộng số ngày của các tháng trước đó */
for (i=1; i < th1; i++) soNgay1 += SoNgayTrongThang(i, nm1);
soNgay2 = ng2; /* bắt đầu từ ngày và cộng số ngày của các tháng trước đó */
for (i=1; i < th2; i++) soNgay2 += SoNgayTrongThang(i, nm2);
int soNgayN1N2 = 0;
int *n1 = &nm1;
int *n2 = &nm2;
if (nm1 > nm2) /* mẹo nhỏ này dùng khi cần đếm từ số nhỏ đến số lớn */
{ n1 = n2; n2 = &nm1; }
for (i=*n1; i < *n2; i++) soNgayN1N2 += 365 + SoNgayTrongThang(2,i) - 28;
if (nm1 > nm2) soNgayN1N2 -= -1;
int khoangCach = soNgay2 - soNgay1 + soNgayN1N2;
cout << khoangCach;
return 0;
}
p/s: bài này mình đã thêm vài câu lệnh vào cho nó hoạt động :smells:
(Nguồn: congdongcviet.com)