Bài 102: Viết chương trình nhập vào 1 ngày ( ngày, tháng, năm) Tìm ngày kế ngày vừa
#include<stdio.h>
#include<conio.h>
const int minYear = 1900, maxYear = 10000;
int KiemTraNamNhuan(int nam)
{
return (nam 3 4 == 0Ô && nam 3 100 != 0) || (nam % 400 == Q);
}
int TimSoNgayTrongThang(int thang, int nam)
{
int NgayTrongThang;
switch (thang)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
NgayTrongThang = 31;
break;
case 4: case 6: case 9 : case 11:
NgayTrongThang = 30;
break;
case 2:
int Check = KiemTraNamNhuan (nam);
if (Check == 1) {
NgayTrongThang = 29;
Trang 2else
NgayTrongThang = 28;
}
return NgayTrongThang;
void TimNgayKeTiep(int Ngay, int Thang, int Nam)
{
int NgayTrongThang = TimSoNgayTrongThang(Thang, Nam);
if (Ngay < NgayTrongThang) // Tang ngay lên
{
Ngay++;
}
else if (Thang < 12) // Ngay ké tiép 1a dau tháng
{
Ngay = l1; 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 - $%đ ", Ngay, Thang, Nam);
Trang 3}
int main()
{
int Ngay, Thang, Nam;
do
{
printf("\nNhap vao nam: ");
scanf("%d", &Nam) ; 1£(Nam < minYear || Nam > maxYear)
{
printf ("\nDu lieu nam khong hop le Xin kiem tra lai!");
}
}while (Nam < minYear || Nam > maxYear);
do
{
printf("\nNhap vao thang: ");
scanf("%d", &Thang);
if (Thang < 1 || Thang > 12)
printf ("\nDu lieu thang khong hop le Xin kiem tra lai!"); }while (Thang < 1 || Thang > 12);
int NgayTrongThang = TimSoNgayTrongThang(Thang, Nam);
do
{
Trang 4printểf("\nNhap vao ngay: ");
scanf ("%d", &Ngay) ;
1£(Ngay < 1 || Ngay > NgayTrongThang)
{
printf("\nDu lieu ngay khong hop le Xin kiem tra lai") ;
}
}wh1le (Ngay < 1 || Ngay > NgayTrongThang) ;
TimNgayKeTiep(Ngay, Thang, Nam);
getch();
return 0;