Viết chương trình nhập ngày tháng năm in ra màn hình ngày kế tiếp ngày tháng năm

#include <iostream> using namespace std; typedef struct OneDay { int DD,MM,YYYY; }OD; void Nhap(OD& x, int& LastDay) { cout << "Nhap ngay: "; cin >> x.DD; cout << "Nhap thang: "; cin >> x.MM; cout << "Nhap nam: "; cin >> x.YYYY; switch (x.MM) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: LastDay = 31; break; case 4: case 6: case 9: case 11: LastDay = 30; break; case 2: if (x.YYYY % 400 == 0 || (x.YYYY % 4 == 0 && x.YYYY % 100 != 0)) LastDay = 29; else LastDay = 28; break; default: LastDay = 0; } if (LastDay == 0 || x.YYYY < 1 || (LastDay != 0 && (x.DD > LastDay || x.DD < 1))) { cout << "Ngay thanh nam khong hop le, vui long nhap lai:" << '\n'; Nhap(x, LastDay); } } void NextDay(OD x,OD &y,int n) { if (x.DD < n) { y.DD = x.DD + 1; y.MM = x.MM; y.YYYY = x.YYYY; } else { if (x.MM != 12) { y.DD = 1; y.MM = x.MM + 1; y.YYYY = x.YYYY; } else { y.DD = 1; y.MM = 1; y.YYYY = x.YYYY + 1; } } } int main() { OD Day1, Day2; int LastDay; Nhap(Day1,LastDay); NextDay(Day1, Day2, LastDay); cout << "Ngay ke tiep la: " << Day2.DD << "/" << Day2.MM << "/" << Day2.YYYY; return 0; } // Created by Akarata

1 Like

Bạn muốn chia sẻ bài tập này của bạn với mọi người???

2 Likes

vâng! Tôi muốn chia sẻ với mọi người.

Home Categories FAQ/Guidelines Terms of Service Privacy Policy

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 \n"; 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<<"\nNgay hom truoc la "<<dd<<"/"<<mm<<"/"<<yy; }//Ngay hom truoc

Bài 12. Viết chương trình nhập vào ngày, tháng, năm hợp lệ. cho biết năm này có phải là năm nhuận hay không? In kết quả ra màn hình. Trong DƯƠNG LỊCH : Năm nhuận là năm chia hết cho 4, nhưng không chia hết cho 100 (trừ những năm chia hết cho 400 cũng là năm nhuận).

Code c:

#include <stdio.h>

int main() {

    int ngay, thang, nam;

    printf("Nhap ngay,thang,nam: ");

    scanf("%d%d%d",&ngay,&thang,&nam);

    switch(thang) {

    case 1: case 3: case 5: case 7: case 8: case 10:  case 12:

                if( ngay>0 && ngay<=31){

                printf("Ngay %d thang %d nam %d hop le\n",ngay,thang,nam);   break;

                }

              else

               { printf("Ngay %d thang %d nam %d ko hop le\n",ngay,thang,nam);   break;

                }

    case 4: case 6: case 9: case 11:

                if( ngay<=30 && ngay>0){

                printf("Ngay %d thang %d nam %d hop le\n",ngay,thang,nam);           break;

                }

                        else{ printf("Ngay %d thang %d nam %d ko hop le\n",ngay,thang,nam);   break;

                }

    case 2:

                if( ngay <=28 && ngay > 0){

                printf("Ngay %d thang %d nam %d hop le\n",ngay,thang,nam);   break;

                }

                else

               { printf("Ngay %d thang %d nam %d ko hop le\n",ngay,thang,nam);   break;

                }

    default: printf("Ngay %d thang %d nam ko hop le\n",ngay,thang,nam); break;

    }

                if(nam%400==0)  printf("Nam %d la nam nhuan",nam);

                else

                {

                if(nam%4==0 && nam%100!=0) printf("Nam %d la nam nhuan",nam);

                else  printf("Nam %d ko phai la nam nhuan",nam);

                        }

}