[ create a new paste ] login | about

Link: http://codepad.org/LnlHVZTx    [ raw code | output | fork | 2 comments ]

C, pasted on Sep 11:
#include<stdio.h>
#include<conio.h>

const int minYear = 1900, maxYear = 10000;
int KiemTraNamNhuan(int nam)
{
	return (nam % 4 == 0 && nam % 100 != 0) || (nam % 400 == 0);
}
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;
		}
		else
		{
			NgayTrongThang = 28;
		}
	}
	return NgayTrongThang;
}

void TimNgayTruocDo(int Ngay, int Thang, int Nam)
{
	int NgayTrongThang = TimSoNgayTrongThang(Thang, Nam);
	if(Ngay == 1)            // Nếu ngày nhập vào là 1
	{
		Ngay = NgayTrongThang;        // ngày trước đó là số ngày trong tháng trước 
		if(Thang == 1)            // Nếu tháng là 1
		{
			Thang = 12;
			Nam--;
		}
		else                     // Tháng khác 1
			Thang--;
	}
	else                // Ngày khác 1
		Ngay--;
		printf("\nNgay truoc do la: %d - %d - %d ", Ngay, Thang, Nam);
	}
	int main()
	{
		int Ngay, Thang, Nam;

		do
		{
			printf("\nNhap vao nam: ");
			scanf("%d", &Nam);
			if(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
		{
			printf("\nNhap vao ngay: ");
			scanf("%d",&Ngay);
			if(Ngay < 1 || Ngay > NgayTrongThang)
			{
				printf("\nDu lieu ngay khong hop le. Xin kiem tra lai!");
			}
		}while(Ngay < 1 || Ngay > NgayTrongThang);

		TimNgayTruocDo(Ngay, Thang, Nam);

		getch();
		return 0;
	}


Output:
1
2
3
4
5
6
Line 17: error: conio.h: No such file or directory
In function 'TimSoNgayTrongThang':
Line 21: error: expected expression before 'int'
Line 22: error: 'Check' undeclared (first use in this function)
Line 22: error: (Each undeclared identifier is reported only once
Line 22: error: for each function it appears in.)


Create a new paste based on this one


Comments:
posted by muatranchau on May 17
Em chào thầy ạ.Thầy ơi chỗ tìm ngày trước đó
Ngay = NgayTrongThang;
thì chỗ này nó sẽ cho kết quả là ngày của tháng mình nhập vào chứ không phải là ngày của tháng trước đó ạ. Nên e sửa nó thành
Ngay= TimSoNgayTrongThang(Thang-1, Nam);
E chạy trong dev C thì ok, nhưng chạy bên visual thì phải đổi vị trí như phía dưới ạ( sao lại thế nhỉ?)
if (day == 1)
{
if (month == 1) /
{
day = 31;
month = 12;
year = year - 1;
}
else
{
day = find_number_day_in_month(month - 1, year);
month = month - 1;
}

reply
posted by muatranchau on May 17
còn trong dev C thì như này ạ
if (day == 1)
{
day = find_number_day_in_month(month - 1, year);

if (month == 1)
{
month = 12;
year = year - 1;
}
else
{
month = month - 1;

}
}
reply