30/09/2018, 16:36
Tham Khảo code chương trình nhập vào ngày tháng năm
Viết = Hàm (function)
Viết chương trình nhập vào ngày tháng năm (kiểm tra tính hợp lệ) và In ra ngày hôm trước và hôm sau…ai cao tay cho e hỏi thêm có ai code bài giống như vậy ko cho e tham khảo code với…thanks all
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
int KiemTraNam(int yy);//Ki?m tra nam nhu?n hay ko
int KiemTraNgay(int dd,int mm,int yy);//Ki?m tra ngày có có trong tháng hay không
void SoNgayTrongThang(int yy,int mm,int a);//S? ngày trong t?ng tháng tính theo nam nhu?n hay ko nhu?n
void NgayHomSau(int dd, int mm, int yy);//Ngày tháng hôm sau
void NgayHomTruoc(int dd, int mm, int yy);
int main(){
int dd,mm,yy;
cout<<"Nhap ngay thang nam cach nhau boi dau cach: ";cin>>dd>>mm>>yy;
if(mm>0 && mm<=12 && yy>1){
if(KiemTraNgay(dd,mm,yy)==1){
cout<<"Dinh dang ngay dung
";
NgayHomSau(dd,mm,yy);
NgayHomTruoc(dd,mm,yy);
}
else cout<<"Dinh dang ngay sai";
}
else cout<<"so nam hoac so thang ko dung";
//Ki?m tra thang nam nh?p vào
getch();
}
int KiemTraNam(int yy,int mm){
bool check;
if(yy%400==0 || (yy%4==0 && yy%100!=0)){
check=0;//Nam nhu?n
}
else check=1;//Nam thu?ng
return check;
}//Ki?m tra nam nhu?n hay ko nhu?n
void SoNgayTrongThang(int yy,int mm,int a[13]){
int i;
for(i=1;i<=12;i++){
if(i<=7)
if(i%2!=0) a[i]=31;//tháng 1,3,5,7 có 3` ngày
else a[i]=30;//tháng 2,4,6 có 30 ngày
if(i>=8)
if(i%2==0) a[i]=31;//tháng 8,10,12 có 30 ngày
else a[i]=30;//tháng 9,11 có 30 ngày
if(i==2)
if(KiemTraNam(yy,mm)==0) a[i]=29;//Nam nhu?n tháng 2 có 29 ngày
else a[i]=28;//Nam không nhu?n tháng 2 có 28 ngày
}
}//Xét 1 tháng có bao nhiêu ngày
int KiemTraNgay(int dd,int mm,int yy){
bool check;
int a[13];//Ð?t bi?n luu ngày trong tháng
SoNgayTrongThang(yy,mm,a);
if(dd<=a[mm] && dd>0)
check=1;//Ðúng
else check=0;//Sai
return check;
}//Ki?m tra ngày
void NgayHomSau(int dd,int mm,int yy){
int a[13];//Ð?t bi?n luu ngày trong tháng
SoNgayTrongThang(yy,mm,a);
if(dd<a[mm]) dd=dd+1;//Tang ngày
if(dd==a[mm]){
dd=1;
if(mm==12){
dd=1;
mm=1;
yy=yy+1;
}else mm=mm+1;//Tang nam
}//Tang ngày tháng
cout<<"Ngay hom sau la "<<dd<<"/"<<mm<<"/"<<yy;
}//Ngay hom sau
void NgayHomTruoc(int dd,int mm,int yy){
int a[13];//Ð?t bi?n luu ngày trong tháng
SoNgayTrongThang(yy,mm,a);
if(dd<a[mm]) dd=dd-1;//Giam ngày
if(dd==a[mm]){
dd=1;
if(mm==12){
dd=1;
mm=1;
yy=yy-1;
}else mm=mm-1;//Giam nam
}//Giam ngày tháng
cout<<"
Ngay hom truoc la "<<dd<<"/"<<mm<<"/"<<yy;
}//Ngay hom truoc
Bài liên quan
code của mình ^^
Ideone.com
Ideone.com
Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.
Mới xem lại code thấy khá dài + dư nên đã tối ưu lại và chỉ giúp code ngắn chứ kha kha giống codee bạn ^^
rất hay và bổ ích thanks bạn nhìu mình đang tham khảo code
{ PASCAL CHO AI CAN }
var ng,t,n,day:longint;
begin
writeln(‘nhap ngay thang nam:’);
readln(ng,t,n);
if (t=1)or(t=3)or(t=5)or(t=7)or(t=8)or(t=10)or(t=12) then day:=31;
if (t=4)or(t=6)or(t=9)or(t=11) then day:=30;
if t=2 then
if (n mod 4=0) and (n mod 100<>0) then day:=29
else day:=28;
IF (ng>day) or (t>12) or (t<1) or (ng<1) or (n<1)
THEN write(‘ngay thang nam ko hop le !’)
else
begin
inc(ng);
if ng>day then begin inc(t); ng:=1; end;
if t>12 then begin inc(n); t:=1; end;
write(‘ngay thang nam hom sau la: ‘,ng,’-’,t,’-’,n);
end;
readln
end.