[ create a new paste ] login | about

Link: http://codepad.org/LnlHVZTx    [ raw code | output | fork | 6 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
posted by HuyDZ on Mar 10
Code phía trên chưa đúng nếu như nhập 1/3/2020 sẽ trả về 31/2/2020.

/******************************************************************************

Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>

using namespace std;

int Ktnamnhuan(int nam){
return (nam%100==0 && nam%400==0) || (nam%4==0);
}

int Ktngaytheothang(int nam, int thang){
int ngaytieptheo;
switch(thang){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
ngaytieptheo=31;
break;
case 4:case 6:case 9:case 11:
ngaytieptheo=30;
break;
case 2:
int flag = Ktnamnhuan(nam);
if(flag==1){
ngaytieptheo=29;
}else{
ngaytieptheo=28;
}
}
return ngaytieptheo;
}

void Ktngaytieptheo(int ngay, int thang, int nam){
int ngaytieptheo = Ktngaytheothang(nam,thang);
if(ngay==1){
if(thang==1){
nam--;
thang=12;
ngay=ngaytieptheo;
}else{
ngay=Ktngaytheothang(nam,thang-1);
//thang--;
}
}
else{
ngay--;
}
cout<<"\nNgay "<<ngay<<", thang "<<thang<<", nam "<<nam<<"";
}

int main()
{
int ngay, thang, nam;

do{
std::cout << "Nhap ngay: " << std::endl;cin>>ngay;
}while(ngay<1 || ngay>31);

do{
std::cout << "Nhap thang: " << std::endl;cin>>thang;
}while(thang<1 || thang>12);

cout<<"Nhap nam: ";cin>>nam;

cout<<"\nKiem tra nam nhuan - Tinh so ngay trong thang";
// Ktngaytheothang(nam,thang);
cout<<"\nKiem tra ngay tiep theo";
Ktngaytieptheo(ngay,thang,nam);
return 0;
}

reply
posted by yonnon on Jul 16
#include<bits/stdc++.h>

using namespace std;

int main()
{

int day;
int month;
int year;
int datetemp=0;
int temp=0;
int minday=0;
int maxday=0;
do
{
cout << "Enter year: ";
cin >> year;
if(year < 0 )
{
cout << "Nam ban nhap qua nho xin nhap lai! "<<
endl;
}
else if(year > 5000)
{
cout << "Nam ban nhap qua lon xin nhap lai! "<<
endl;

}

}while(year < 0 || year > 5000);

do
{
cout << "Enter month: ";
cin >> month;
if( month < 1 || month >12)
{
cout << "Ban da nhap sai xin nhap lai"<<
endl;
}
}while( month < 1 || month > 12 );

//check year
if (year % 4 == 0)
{
temp = 1;
}
else if( year % 4 != 0)
{
temp = 0;
}
//check month
if( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
minday = 1;
maxday = 31;
}

else if( month == 4 || month == 6 || month == 9 || month == 11)
{
minday = 1;
maxday = 30;
}
else if( month == 2 && temp == 1 )
{
minday = 1;
maxday = 29;
}
else if( month == 2 && temp == 0)
{
minday = 1;
maxday = 28;

}
do
{
cout << "Enter day: ";
cin >> day;

if( day < minday || day > maxday)
{
cout << "Ban da nhap sai xin nhap lai!"<<
endl;
}

}while( day < minday || day > maxday );

if( month == 12 || month == 5 || month == 7 || month == 8 && day==minday)
{
cout <<"30-"<<month-1<<"-"<<year<<" "<<
endl;
return 0;
}
else if(month == 4 || month == 6 || month == 9 || month == 11 || month == 2 && day == minday)
{
cout << "31-"<<month-1<<"-"<<year<<""<<
endl;
return 0;
}
else if( month == 10 && day==minday)
{
cout << "30-"<<month-1<<"-"<<year<<""<<
endl;
return 0;
}
else if(month == 1 && day == minday)
{
cout << "31-12-"<<year-1<<
endl;
return 0;
}
//
else if( month == 3 && temp == 1 && day == minday)
{
cout <<"29-"<<month-1<<"-"<<year<<
endl;
return 0;
}
else if( month == 3 && temp==0 && day == minday)
{
cout <<"28-"<<month-1<<"-"<<year<<
endl;
return 0;
}

else
{
cout<<day-1<<"-"<<month<<"-"<<year<<
endl;
return 0;
}
cin.ignore();
system("pause");
return 0;

}
reply
posted by cuong.luucb8921 on Sep 3
#include<stdio.h>

int main(){
int ngay;
int thang;
int nam;

printf("Nhap vao ngay:\n");
scanf("%d",&ngay);
printf("Nhap vao thang:\n");
scanf("%d",&thang);
printf("Nhap vao nam:\n");
scanf("%d",&nam);

ngay = ngay - 1;
switch(thang)
{
case 5:
case 7:
case 8:
case 10:
case 12:
if(ngay==0)
{
ngay = 30;
thang = thang-1;
}
break;
case 2:
case 4:
case 6:
case 9:
case 11:
if(ngay==0)
{
ngay = 31;
thang = thang-1;
}
break;
case 3:
if(nam%4==0)
{
if(ngay==0)
{
ngay = 29;
thang = thang-1;
}
}
else
{
if(ngay==0)
{
ngay = 28;
thang = thang-1;
}
}
break;
case 1:
if(ngay==0)
{
ngay = 31;
thang = 12;
nam = nam-1;
}
break;
}
printf("%d/%d/%d",ngay,thang, nam);
return 0;
}
reply
posted by dattndev@gmail.com on Feb 1
#include <iostream>
#include<algorithm>
#include<cmath>
using namespace std;
bool checkNamNhuan(int year);
int findDayInMonth(int month, int year);
void findPreviousDay(int day,int month,int year);
int main(){
int day,month,year;
int dayinmonth = findDayInMonth(month,year);

cout<<"Enter day, month and year";
cin >>day>> month >> year;

findPreviousDay(day,month,year);
return 0;
}
bool checkNamNhuan(int year){
if(( year % 4 ==0 && year % 100 != 0)||(year % 400 == 0))
return true;
else
return false;
}
int findDayInMonth(int month,int year){
int dayinmonth;
switch(month){

case 1:case 3:case 5:case 7:case 8:case 10:case 12:
dayinmonth = 31;
break;

case 4:case 6:case 11:
dayinmonth =30;
break;

case 2:
bool check = checkNamNhuan(year);
if ( check == true )
dayinmonth =28;
else
dayinmonth =29;
}
return dayinmonth;
}
void findPreviousDay(int day, int month, int year){
if(day ==1){
int dayinmonth =findDayInMonth(month,year);
if(month == 1){
month = 12;
year--;
day = dayinmonth;
}
else{
day = dayinmonth;
month --;
}
}
else
day--;
cout << day <<", "<< month <<", "<<year;

}

reply