C++练习之 判断某一天是该年的第几天
2012-12-04 15:05
330 查看
#include <iostream>
using namespace std;
int main()
{
bool judge(int year,int month,int day);
int year,month,day,i,j,sum=0;
int a[7]={1,3,5,7,8,10,12};//此数组包含31天的月份
int b[4]={4,6,9,11};//此数组包含30天的月份
cout<<"please input year:";
cin>>year;
cout<<"please input month:";
cin>>month;
cout<<"please input day:";
cin>>day;
while(judge(year,month,day)==0)//此参数为判断输入的年月日是否合法,若不合法则重新输入,直到合法为止。
{
cout<<"error!"<<endl<<"please input again"<<endl;
cout<<"please input year:";
cin>>year;
cout<<"please input month:";
cin>>month;
cout<<"please input day:";
cin>>day;
}
for(i=0;a[i]<=month;i++)//此语句求出1月到所输入月份的天数之和。
sum+=31;
for(j=0;b[j]<=month;j++)//此语句求出4月到所输入月份的天数之和并与上面求出的相加。
sum+=30;
if((year%4==0&&year%100!=0)||(year%400==0))//判断是否为闰年。
{
if(month>=2)
sum+=29;
}
else
{
if(month>=2)
sum+=28;
}
sum+=day;//最后将该月份天数加起来。
cout<<"这是该年的第"<<sum<<"天"<<endl;
return 0;
}
bool judge(int year,int month,int day)//判断年月日是否合法。
{
bool p,pyear,pmonth,pday;
if(year>0)
pyear=1;
else
pyear=0;
if(month>=1&&month<=12)
pmonth=1;
else
pmonth=0;
if(month==4&&month==6&&month==9&&month==11)
{
if(day>=1&&day<=30)
pday=1;
else
pday=0;
}
else if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(day>=1&&day<=29)
pday=1;
else
pday=0;
}
else
{
if(day>=1&&day<=28)
pday=1;
else
pday=0;
}
}
else
{
if(day>=1&&day<=31)
pday=1;
else
pday=0;
}
if(pyear==1&&pmonth==1&&pday==1)
p=1;
else
p=0;
return p;
}
using namespace std;
int main()
{
bool judge(int year,int month,int day);
int year,month,day,i,j,sum=0;
int a[7]={1,3,5,7,8,10,12};//此数组包含31天的月份
int b[4]={4,6,9,11};//此数组包含30天的月份
cout<<"please input year:";
cin>>year;
cout<<"please input month:";
cin>>month;
cout<<"please input day:";
cin>>day;
while(judge(year,month,day)==0)//此参数为判断输入的年月日是否合法,若不合法则重新输入,直到合法为止。
{
cout<<"error!"<<endl<<"please input again"<<endl;
cout<<"please input year:";
cin>>year;
cout<<"please input month:";
cin>>month;
cout<<"please input day:";
cin>>day;
}
for(i=0;a[i]<=month;i++)//此语句求出1月到所输入月份的天数之和。
sum+=31;
for(j=0;b[j]<=month;j++)//此语句求出4月到所输入月份的天数之和并与上面求出的相加。
sum+=30;
if((year%4==0&&year%100!=0)||(year%400==0))//判断是否为闰年。
{
if(month>=2)
sum+=29;
}
else
{
if(month>=2)
sum+=28;
}
sum+=day;//最后将该月份天数加起来。
cout<<"这是该年的第"<<sum<<"天"<<endl;
return 0;
}
bool judge(int year,int month,int day)//判断年月日是否合法。
{
bool p,pyear,pmonth,pday;
if(year>0)
pyear=1;
else
pyear=0;
if(month>=1&&month<=12)
pmonth=1;
else
pmonth=0;
if(month==4&&month==6&&month==9&&month==11)
{
if(day>=1&&day<=30)
pday=1;
else
pday=0;
}
else if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if(day>=1&&day<=29)
pday=1;
else
pday=0;
}
else
{
if(day>=1&&day<=28)
pday=1;
else
pday=0;
}
}
else
{
if(day>=1&&day<=31)
pday=1;
else
pday=0;
}
if(pyear==1&&pmonth==1&&pday==1)
p=1;
else
p=0;
return p;
}
相关文章推荐
- ★输入某年某月某日,判断这一天是这一年的第几天? C/C++
- java练习:输入某年某月某日,判断这一天是这一年的第几天?
- 【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天?
- 输入某年某月某日,判断这一天是这一年的第几天?
- 判断某一天在该年中是第几天
- 输入某年某月某日,判断这一天是这一年的第几天?
- 2.输入某年某月某日,判断这一天是这一年的第几天?
- 输入某年某月某日,判断这一天是这一年的第几天(java)
- 输入某年某月某日,判断这一天是这一年的第几天?
- 【OJ练习】查询某一天是一年中的第几天
- C++练习之 素数系列(判断单个数是否为素数,输出一定范围的素数,循环判断素数)
- [Java] 练习题014: 输入某年某月某日,判断这一天是这一年的第几天?
- C++实例练习,判断一个点是否在圆内
- C语言:输入某年某月某日,判断这一天是这一年的第几天?
- 输入某年某月某日,判断这一天是这一年的第几天?
- 【笔试】14、判断这一天是这一年的第几天
- 输入某年某月某日,判断这一天是这一年的第几天?
- C语言之输入年月日 判断这一天为全年的第几天
- 输入某年某月某日,判断这一天是这一年的第几天?考虑闰年的情况
- 【程序4】输入某年某月某日,判断这一天是这一年的第几天?