日期类问题
例2.3 日期差值
代码 2.6
通过预处理将日期和原点(00000101)的差值存储在数组中,求两个日期差值转换为求两个日期和原点距离的差值。
我们在过程中定义了一个宏来判断日期是否在闰年中。
#include<iostream>
#include<stdlib.h>
#define isRun(x) x % 4 == 0 && x % 100 != 0 || x % 400 == 0
using namespace std;
int DayofMonth[13][2] = {
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31
};
struct Date{
int Year;
int Month;
int Day;
void nextDay(){
Day++;
if(Day > DayofMonth[Month-1][isRun(Year)]){
Day = 1;
Month++;
}
if(Month > 12){
Month = 1;
Year++;
}
}
};
int buf[5001][13][32];
int main(){
Date d;
int cnt = 0;
d.Year = 0;
d.Month = 1;
d.Day = 1;
while(d.Year != 5001){
buf[d.Year][d.Month][d.Day] = cnt;
d.nextDay();
cnt++;
}
int a,b;
int minus;
whil