📄 2324.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 2324 on 2006-08-20 at 21:40:27 */
#include <cstdio>
#include <algorithm>
using namespace std;
const int DAY[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
class Date {
int dlmt() const;
public:
int d, m, y;
void make() { scanf("%d/%d/%d", &m, &d, &y); }
void print() const { printf("%d/%d/%d", m, d, y); }
bool equ(int dd, int dm) const { return d == dd && m == dm; }
void operator ++();
void operator --();
};
int Date::dlmt() const {
if(m != 2) return DAY[m-1];
else if((y%100 != 0 && y%4 == 0) || (y%400 == 0)) return DAY[m-1]+1;
else return DAY[m-1];
}
void Date::operator ++() {
d++;
int dl = dlmt();
if(d > dl) { m++; d = 1; }
if(m > 12) { m = 1; y++; }
}
void Date::operator --() {
d--;
if(d == 0) m--;
if(m == 0) { m = 12; y--; }
if(d == 0) d = dlmt();
}
int main()
{
int T, i;
scanf("%d", &T);
for(int t = 1; t <= T; t++) {
Date d, dx; d.make();
int dd, dm; scanf("%d/%d", &dm, &dd);
printf("%d ", t);
if(d.equ(dd, dm)) { printf("SAME DAY\n"); continue; }
dx = d;
for(i = 1; i <= 7; i++) {
++dx;
if(dx.equ(dd, dm)) {
dx.print(); printf(" IS %d %s AFTER\n", i, i == 1 ? "DAY" : "DAYS");
break;
}
}
if(i != 8) continue;
dx = d;
for(i = 1; i <= 7; i++) {
--dx;
if(dx.equ(dd, dm)) {
dx.print(); printf(" IS %d %s PRIOR\n", i, i == 1 ? "DAY" : "DAYS");
break;
}
}
if(i != 8) continue;
printf("OUT OF RANGE\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -