#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define MAX 99
void ngaycuathang(int thang, int nam)
{
int NgayTrongThang;
switch(thang)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
NgayTrongThang = 31;
printf("\n\tThang %d co 31 ngay!", thang
); break;
case 4: case 6: case 9: case 11:
NgayTrongThang = 30;
printf("\n\tThang %d co 30 ngay!", thang
); break;
case 2:
if((nam%4==0 && nam%100 != 0)|| nam%400==0)
{
NgayTrongThang = 29;
printf("\n\tThang %d co 29 ngay!", thang
); }
else
{
NgayTrongThang = 28;
printf("\n\tThang %d co 28 ngay!", thang
); }
break;
}
}
void TimNgayTruocDo(int ngay, int thang, int nam)
{
int NgayTrongThang;
if(ngay==1)
{
if(thang==1)
{
thang=12;
nam = nam-1;
}
else
thang = thang-1;
ngay = NgayTrongThang;
}
else
{
ngay=ngay-1;
}
printf("\n\tNgay truoc ngay vua nhap la: %d/%d/%d", ngay
, thang
, nam
); }
void TimNgaySauDo(int ngay, int thang, int nam)
{
int NgayTrongThang;
if(ngay==NgayTrongThang)
{
if(thang==12)
{
thang = 1;
nam = nam+1;
}
else
thang = thang + 1;
ngay = 1;
}
else
{
ngay=ngay+1;
}
printf("\n\tNgay sau ngay vua nhap la: %d/%d/%d", ngay
, thang
, nam
); }
int main()
{
int ngay, thang, nam;
int NgayTrongThang;
while(ngay<1)
{
}
while(thang<1 || thang>12)
{
}
if (ngay <= NgayTrongThang)
{
printf("\nNgay vua nhap la: %d/%d/%d", ngay
, thang
, nam
); ngaycuathang(thang, nam);
TimNgayTruocDo(ngay, thang, nam);
TimNgaySauDo(ngay, thang, nam);
}
else
printf("\nNgay khong hop le! Vui long nhap lai!\n"); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIE1BWCA5OQoKdm9pZCBuZ2F5Y3VhdGhhbmcoaW50IHRoYW5nLCBpbnQgbmFtKQp7CiAgICBpbnQgTmdheVRyb25nVGhhbmc7CiAgICBzd2l0Y2godGhhbmcpCiAgICB7CiAgICBjYXNlIDE6IGNhc2UgMzogY2FzZSA1OiBjYXNlIDc6IGNhc2UgODogY2FzZSAxMDogY2FzZSAxMjoKICAgICAgICBOZ2F5VHJvbmdUaGFuZyA9IDMxOwogICAgICAgIHByaW50ZigiXG5cdFRoYW5nICVkIGNvIDMxIG5nYXkhIiwgdGhhbmcpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSA0OiBjYXNlIDY6IGNhc2UgOTogY2FzZSAxMToKICAgICAgICBOZ2F5VHJvbmdUaGFuZyA9IDMwOwogICAgICAgIHByaW50ZigiXG5cdFRoYW5nICVkIGNvIDMwIG5nYXkhIiwgdGhhbmcpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAyOgogICAgICAgIGlmKChuYW0lND09MCAmJiBuYW0lMTAwICE9IDApfHwgbmFtJTQwMD09MCkKICAgICAgICB7CiAgICAgICAgICAgIE5nYXlUcm9uZ1RoYW5nID0gMjk7CiAgICAgICAgICAgIHByaW50ZigiXG5cdFRoYW5nICVkIGNvIDI5IG5nYXkhIiwgdGhhbmcpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBOZ2F5VHJvbmdUaGFuZyA9IDI4OwogICAgICAgICAgICBwcmludGYoIlxuXHRUaGFuZyAlZCBjbyAyOCBuZ2F5ISIsIHRoYW5nKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KCnZvaWQgVGltTmdheVRydW9jRG8oaW50IG5nYXksIGludCB0aGFuZywgaW50IG5hbSkKewogICAgaW50IE5nYXlUcm9uZ1RoYW5nOwogICAgaWYobmdheT09MSkKICAgIHsKICAgICAgICBpZih0aGFuZz09MSkKICAgICAgICB7CiAgICAgICAgICAgIHRoYW5nPTEyOwogICAgICAgICAgICBuYW0gPSBuYW0tMTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB0aGFuZyA9IHRoYW5nLTE7CiAgICAgICAgICAgIG5nYXkgPSBOZ2F5VHJvbmdUaGFuZzsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBuZ2F5PW5nYXktMTsKICAgIH0KICAgIHByaW50ZigiXG5cdE5nYXkgdHJ1b2MgbmdheSB2dWEgbmhhcCBsYTogJWQvJWQvJWQiLCBuZ2F5LCB0aGFuZywgbmFtKTsKfQoKdm9pZCBUaW1OZ2F5U2F1RG8oaW50IG5nYXksIGludCB0aGFuZywgaW50IG5hbSkKewogICAgaW50IE5nYXlUcm9uZ1RoYW5nOwogICAgaWYobmdheT09TmdheVRyb25nVGhhbmcpCiAgICB7CiAgICAgICAgaWYodGhhbmc9PTEyKQogICAgICAgIHsKICAgICAgICAgICAgdGhhbmcgPSAxOwogICAgICAgICAgICBuYW0gPSBuYW0rMTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB0aGFuZyA9IHRoYW5nICsgMTsKICAgICAgICAgICAgbmdheSA9IDE7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgbmdheT1uZ2F5KzE7CiAgICB9CiAgICBwcmludGYoIlxuXHROZ2F5IHNhdSBuZ2F5IHZ1YSBuaGFwIGxhOiAlZC8lZC8lZCIsIG5nYXksIHRoYW5nLCBuYW0pOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBuZ2F5LCB0aGFuZywgbmFtOwogICAgaW50IE5nYXlUcm9uZ1RoYW5nOwogICAgcHJpbnRmKCJOaGFwIG5nYXk6ICIpOwogICAgc2NhbmYoIiVkIiwgJm5nYXkpOwogICAgd2hpbGUobmdheTwxKQogICAgewogICAgICAgIHByaW50ZigiXG5OaGFwIGxhaSBuZ2F5OiAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmbmdheSk7CiAgICB9CiAgICBwcmludGYoIlxuTmhhcCB0aGFuZzogIik7CiAgICBzY2FuZigiJWQiLCAmdGhhbmcpOwogICAgd2hpbGUodGhhbmc8MSB8fCB0aGFuZz4xMikKICAgIHsKICAgICAgICBwcmludGYoIlxuTmhhcCBsYWkgdGhhbmc6ICIpOwogICAgICAgIHNjYW5mKCIlZCIsICZuZ2F5KTsKICAgIH0KICAgIHByaW50ZigiXG5OaGFwIG5hbTogIik7CiAgICBzY2FuZigiJWQiLCAmbmFtKTsKICAgIGlmIChuZ2F5IDw9IE5nYXlUcm9uZ1RoYW5nKQogICAgewogICAgICAgIHByaW50ZigiXG5OZ2F5IHZ1YSBuaGFwIGxhOiAlZC8lZC8lZCIsIG5nYXksIHRoYW5nLCBuYW0pOwogICAgICAgIG5nYXljdWF0aGFuZyh0aGFuZywgbmFtKTsKICAgICAgICBUaW1OZ2F5VHJ1b2NEbyhuZ2F5LCB0aGFuZywgbmFtKTsKICAgICAgICBUaW1OZ2F5U2F1RG8obmdheSwgdGhhbmcsIG5hbSk7CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQogICAgZWxzZQogICAgICAgIHByaW50ZigiXG5OZ2F5IGtob25nIGhvcCBsZSEgVnVpIGxvbmcgbmhhcCBsYWkhXG4iKTsKCXJldHVybiAwOwp9