#include <stdio.h>
#include <conio.h>
int main()
{
int Nam, Thang, Ngay;
printf("\nNhap vao nam: ");
scanf_s("%d", &Nam);
if (Nam < 1940)
{
printf("\nNam khong hop le. Xin kiem tra lai !");
_getch();
return 0;
}
printf("\nNhap vao thang: ");
scanf_s("%d", &Thang);
if (Thang < 1 || Thang > 12)
{
printf("\nThang khong hop le. Xin kiem tra lai !");
_getch();
return 0;
}
printf("\nNhap vao ngay: ");
scanf_s("%d", &Ngay);
bool CheckNgay = true; // Mặc định là đúng.
if (Ngay < 1)
{
CheckNgay = false;
}
else
{
if (Thang == 1 || Thang == 3 || Thang == 5 || Thang == 7 || Thang == 8 || Thang == 10 || Thang == 12)
{
if (Ngay > 31)
{
CheckNgay = false;
}
}
else if (Thang == 4 || Thang == 6 || Thang == 9 || Thang == 11)
{
if (Ngay > 30)
{
CheckNgay = false;
}
}
else // Tháng 2
{
// Năm nhuận
if ((Nam % 4 == 0 && Nam % 100 != 0) || Nam % 400 == 0)
{
if (Ngay > 29)
{
CheckNgay = false;
}
}
else
{
if (Ngay > 28)
{
CheckNgay = false;
}
}
}
}
if (CheckNgay == false)
{
printf("\nDu lieu ngay khong hop le. Xin kiem tra lai !");
_getch();
return 0;
}
// Xử lý
int NgayTrongThang;
if (Thang == 1 || Thang == 3 || Thang == 5 || Thang == 7 || Thang == 8 || Thang == 10 || Thang == 12)
{
NgayTrongThang = 31;
}
else if (Thang == 4 || Thang == 6 || Thang == 9 || Thang == 11)
{
NgayTrongThang = 30;
}
else // Tháng 2
{
// Năm nhuận
if ((Nam % 4 == 0 && Nam % 100 != 0) || Nam % 400 == 0)
{
NgayTrongThang = 29;
}
else
{
NgayTrongThang = 28;
}
}
if (Ngay < NgayTrongThang) // Tăng ngày lên
{
Ngay++;
}
else if (Thang < 12) // Ngày kế tiếp là đầu tháng
{
Ngay = 1; Thang++;
}
else // Ngày kế là đầu năm mới tức là hiện tai đang là tháng 12
{
Ngay = Thang = 1;
Nam++;
}
printf("\nNgay ke tiep la: %d - %d - %d ", Ngay, Thang, Nam);
/*
Hôm nay là 1/3/2015 --> ngày trước đó là ngày 28/2/2015
hôm nay là ngày 1/1/2016 --> ngày trước đó là ngày 30/12/2015
*/
_getch();
return 0;
}