闰年判断
if((year%400==0)||year%4==0&&year%100!=0)
则是闰年
#include<iostream>
using namespace std;
class Date
{
private:
int year,month,day;
public:
.........
};
int mon(int year,int month)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
return 31;
else if(month==4||month==6||month==9||month==11)
return 30;
else if(year%400==0||(year%4==0&&year%100!=0)
return 29;
else
return 28;
}
/*注:日期类的定义省略*/
/*一个·日期相加n天,后的日期*/
int data(int n)
{
day+=n;
int y=year;
int m=month;
while(day>mon(y,m))
{
day-=mon(y,m);
m++;
if(m>12)
{
m=1;
y++;
}
}
}
}
//相减,同理
/****************************************************/
/*任意两个日期间的天数*/
#include<iostream>
using namespace std;
class Date
{
private:
int year,month,day;
public:
Date operator&(Date &p)
{
int flag;
if(year!=p.year) { flag=1; if(year<p.year) flag=-1; }
else if(month!=p.month) { flag=1; if(month<p.monthr) flag=-1; }
else
return day-p.day;
int y1,m1,d1,y2,m2,d2;
if(flag==-1)
{ y1=year; m1=month; d1=day; y2=p.year; m2=p.month; d2=p.day; }
else
{ y2=year; m2=month; d2=day; y1=p.year; m1=p.month; d1=p.day; }
int i=y1,j=m1;
int s=0;
while(i!=y2||j!=m2)
{
s=s+mon(i,j);
j++;
if(j>12)
{ j=1; s++ }
}
s=s+d2-d1;
s=s*flag;
return s;
};