|
#include<bits/stdc++.h>
using namespace std;
bool runnian(int t)//闰年判断
{
if (((t%4 == 0)&&(t%100 != 0)) || (t%400 == 0))
{
return true;
}
return false;
}
void riqijisuan()//日期计算
{
int year,n;
int y,i;
int mon[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,//平年
31,29,31,30,31,30,31,31,30,31,30,31};//闰年
cin>>year>>n;
if(runnian(year))//闰年判断
{
y=1;
}
else y=0;
for(i=1;i<=12;i++)//月份循环
{
if(n<mon[y][i-1])//如果天数小于当月的满天数
{
break;
}
else
{
n-=mon[y][i-1];//如果天数大于当月天数,则减掉,进入下一个月
}
}
cout<<i<<'/'<<n;//几月几号
}
void shuiguotou()//睡过头 日期间隔计算
{
int y1,m1,d1,y2,m2,d2;
int y1t,y2t;//puanduanrn
int n=0;//zongxianshu
cin>>y1>>m1>>d1>>y2>>m2>>d2;//起始和结束
int mon[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31};//闰年
if(runnian(y1)) y1t=1;//判断是不是闰年
else y1t=0;
while(1)//按天循环
{
n++;
d1++;
if(d1==mon[y1t][m1]+1)
{
d1=1;
m1++;
}
if(m1==13)//到13月回到1月
{
m1=1; //月份归1
y1++;//加一
if(runnian(y1)) y1t=1;
else y1t=0;
}
if((y1==y2)&&(m1==m2)&&(d1==d2)) break;
}
cout<<n;
} |
|