判断某一天在该年中是第几天

来源:互联网 发布:require.js的实现原理 编辑:程序博客网 时间:2024/05/02 01:07

//判断某一天在该年中是第几天
#include<iostream>
using namespace std;
int pd(int year);
int year,month,day,jie,result,i;
int main()
{//int a[13][367];
int djt(int);//第几天,函数声明
int zw(int,int,int);//判断日期函数声明
int z,a,b=30,c=31;
cout<<"请输入年份(年月日):\n";
//cout<<"如果回车后无显示,则表示"不合法"\n";
for(i=1;i<=10;i++)
{cin>>year>>month>>day;
while(month>12||day>31||day<0)
{cout<<"输入有误,请重新输入:\n";
cin>>year>>month>>day;}
if(zw(year,month,day)==1)//如果日期合法
{cout<<"日期合法,真棒!\n";
if(pd(year)==1)//如果是闰年
a=29;
else
a=28;
switch(month)
{case 1:z=day;break;
case 2:z=day+c;break; 
case 3:z=day+c+a;break;
case 4:z=day+2*c+a;break;
case 5:z=day+2*c+a+b;break;
case 6:z=day+3*c+a+b;break; 
case 7:z=day+3*c+a+2*b;break;
case 8:z=day+4*c+a+2*b;break;
case 9:z=day+4*c+a+3*b;break;
case 10:z=day+4*c+a+4*b;break;
case 11:z=day+5*c+a+4*b;break;
case 12:z=365-(31-day);break;
}
cout<<"第"<<z<<"天\n";
}
else
{cout<<"输入有误,请重新输入: \n";}
cout<<'\n';
}

return 0;
}

int zw(int,int,int)//判断日期,函数定义
{
bool jie=true;
if(month==2)//以下7行判断2月
  if(pd(year)==1)//如果是闰年
  {if(day<=29);else jie=false;}
   else
   {if(day<=28);else jie=false;}
else//如果month!=2
{if(month==4||month==6||month==9||month==11)
{if(day<=30);else jie=false;}
  else; 
}
return jie;
}

int pd(int year)//定义函数,判断润平年
{
bool result=true;
if(year%4==0)
{  if(year%100==0)
      if(year%400!=0)
  result=false;}
else
    result=false;
return result;
}

原创粉丝点击