Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void main()
- {
- int d, m, y, max;
- int d1, m1, y1, d2, m2, y2;
- //Mặc định năm nhuận là false
- bool nhuan = false;
- //Nhập ngày tháng năm
- cout << "Ngay: ";
- cin >> d;
- cout << "Thang: ";
- cin >> m;
- cout << "Nam: ";
- cin >> y;
- //Kiểm tra năm đó phải năm nhuận không. nếu đúng thì gán lại nhuan. không thì vẫn giá trị mặc định
- if (y % 4 == 0 && y % 100 != 0) nhuan = true;
- if (y % 400 == 0) nhuan == true;
- //Lấy số ngày tối đa của tháng đó
- //tháng 2
- if (m == 2)
- {
- if (nhuan)
- {
- max = 29;
- }
- else
- max = 28;
- }
- else
- {
- //tháng 4 6 9 11
- if (m == 4 || m == 6 || m == 9 || m == 11)
- max = 30;
- else
- //còn lại 1 3 5 7 8 10 12
- max = 31;
- }
- //kiem tra hop le
- if (d < 0 || m < 0 || y < 0 || d > max || m > 12)
- {
- cout << "Ngay nhap sai\n";
- //Nhập sai thì return tức thoát hàm, và ở đây là thoát chương trình luôn
- return;
- }
- else
- cout << "Ngay hop le\n";
- //xuat so ngay trong thang
- cout << "so ngay toi da trong thang " << m << " la: " << max << endl;
- //next day lưu trong d1, m1, y1
- //nếu d là ngày cuối cùng của tháng thì d quay lại bằng 1 và tăng tháng lên 1, nếu tháng > 12 thì tháng = 1 và tăng năm lên 1
- if (d == max)
- {
- d1 = 1;
- m1 = m + 1;
- if (m1 == 13)
- {
- m1 = 1;
- y1 = y + 1;
- }
- }
- else //chỉ cần tăng biến ngày lên 1
- {
- d1 = d + 1;
- m1 = m;
- y1 = y;
- }
- cout << "Ngay tiep theo la: " << d1 << " / " << m1 << " / " << y << endl;
- //prev day lưu trong d2, m2, y2
- //Nếu d là ngày đầu tiên của tháng thì giảm tháng m2 đi 1. trường hợp m2 = 0 thì quay lại m2 = 12 và giảm năm y2 đi 1
- if (d == 1)
- {
- m2 = m - 1;
- if (m2 == 0)
- {
- m2 = 12;
- y2 = y - 1;
- }
- //d2 sẽ đc cập nhật lại bằng ngày tối đa của tháng trước đo tức tháng m2 sau khi m2 đã giảm 1
- if (m2 == 2)
- {
- if (nhuan)
- {
- d2 = 29;
- }
- else
- d2 = 28;
- }
- else
- {
- //tháng 4 6 9 11
- if (m2 == 4 || m2 == 6 || m2 == 9 || m2 == 11)
- d2 = 30;
- else
- //còn lại 1 3 5 7 8 10 12
- d2 = 31;
- }
- }
- else // trường hợp ngày bình thường thì d2 bằng d - 1 tức ngày liền trước trong cùng 1 tháng, thắng năm không đổi
- {
- d2 = d - 1;
- m2 = m;
- y2 = y;
- }
- cout << "Ngay truoc do la: " << d2 << " / " << m2 << " / " << y2 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement