#include
//đã tối ưu lại code
short day_of_month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //só ngày trong tháng
short isleapyear(int y) { //kiểm tra năm nhuận
if(!(y%400) || (!(y%4) && y%100)) return 1;
else return 0;
}
int checkday(int d, int m, int y) { //kiểm tra tính hợp lệ
if(m>12) return 0;
else {
if(isleapyear(y)) day_of_month[2] +=1;
if(d>day_of_month[m]) return 0;
}
return 1;
}
void pday(int d, int m,int y) { //in ngày hsau và hqua
int mt=m,dt=d,yt=y; //biến tạm
if(checkday(d,m,y)) {
//ngày hsau:
if(d==day_of_month[m]) {
d=1;
if(m==12) {
m=1;
y+=1;
} else m+=1;
} else d+=1;
m=mt; d= dt; y=yt;
//ngày htrc
if(d==1) {
if(m==1) {
m=12;
d=31;
--y;
} else {
--m;
d = day_of_month[m];
}
} else d-=1;
}
int main(void) {
int d,m,y;
else pday(d,m,y);
return 0;
0 nhận xét:
Đăng nhận xét