算出某日是这一年的第几天
2011-08-10 15:55
92 查看
/*
算出某日是这一年的第几天.
算法:
1.定义变量,年月日,计算天数
2.输入年月日
3.构造一个年的类。判断是否闰年,算出各月份天数,及当前月份天数
4.返回当前天数
by adengou
2011.08.10
win7平台 dev c++5.0,vs 2010 编译通过
*/
#include <iostream>
using namespace std;
//3.
class count_Date
{
private:
int year,month,day,Feb_day;
int sum_day;//计算天数
bool ly;//判断闰平年
public:
int YN;
count_Date(int y, int m,int d);//构造函数
bool leap_year(void);//判断润平年
int count_year(void);//这一年的天数,与题目问题关系不大,可省
int count_month(void);//计算月份天数
int count_day(void);//计算当前天数
};
count_Date::count_Date(int y, int m,int d):sum_day(0),YN(0)//变量初始化
{
year=y;month=m;day=d;
}
bool count_Date::leap_year(void)
{
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
{ly=1;} else{ ly=0; }
return ly;
}
int count_Date::count_year(void)
{
if(ly){return 366;}else{return 365;}
}
int count_Date::count_month(void)
{
int i;
for(i=1;i<month;i++)
{
switch(i)
{
case 1:sum_day+=31;break;
case 2:if(ly){sum_day+=29;}else{sum_day+=28;}break;
case 3:sum_day+=31;break;
case 4:sum_day+=30;break;
case 5:sum_day+=31;break;
case 6:sum_day+=30;break;
case 7:sum_day+=31;break;
case 8:sum_day+=31;break;
case 9:sum_day+=30;break;
case 10:sum_day+=31;break;
case 11:sum_day+=30;break;
case 12:sum_day+=31;break;
default:break;
}
}
if(month<1||month>12){cout<<"日期月份不正确"<<endl;return YN-=1;} else{return sum_day;}
}
int count_Date::count_day(void)
{
if (month==2)
{
if(ly){
if(day>0&&day<30){ return sum_day+=day;;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
if(!ly){
if(day>0&&day<29){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
}
if(month==1 ||month==3 || month==5 || month==7&& month==8 || month==10 ||month==12)
{
if (day>0&&day<32){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
if( month==4 ||month==6 || month==9 || month==11)
{
if (day>0&&day<31){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
}
int main(void)
{
//1.
int i,y,m,d,countDay,countYear;
//2.
cout<<"请输入年,月,日:" ;
cin>>y>>m>>d;
cin.ignore();
//3.
count_Date this_day(y,m,d);
this_day.leap_year();
countYear=this_day.count_year();
countDay=this_day.count_month();
countDay=this_day.count_day();
//4.
cout<<y<<"-"<<m<<"-"<<d<<" 是 ";
switch(countYear)
{
case 365:cout<<"平年 ";break;
case 366:cout<<"润年 ";break;
default:break;
}
if(this_day.YN==0)
{
cout<<" 这天是这一年的第"<<countDay<<"天"<<endl;
}
system("pause");
return 0;
}
算出某日是这一年的第几天.
算法:
1.定义变量,年月日,计算天数
2.输入年月日
3.构造一个年的类。判断是否闰年,算出各月份天数,及当前月份天数
4.返回当前天数
by adengou
2011.08.10
win7平台 dev c++5.0,vs 2010 编译通过
*/
#include <iostream>
using namespace std;
//3.
class count_Date
{
private:
int year,month,day,Feb_day;
int sum_day;//计算天数
bool ly;//判断闰平年
public:
int YN;
count_Date(int y, int m,int d);//构造函数
bool leap_year(void);//判断润平年
int count_year(void);//这一年的天数,与题目问题关系不大,可省
int count_month(void);//计算月份天数
int count_day(void);//计算当前天数
};
count_Date::count_Date(int y, int m,int d):sum_day(0),YN(0)//变量初始化
{
year=y;month=m;day=d;
}
bool count_Date::leap_year(void)
{
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
{ly=1;} else{ ly=0; }
return ly;
}
int count_Date::count_year(void)
{
if(ly){return 366;}else{return 365;}
}
int count_Date::count_month(void)
{
int i;
for(i=1;i<month;i++)
{
switch(i)
{
case 1:sum_day+=31;break;
case 2:if(ly){sum_day+=29;}else{sum_day+=28;}break;
case 3:sum_day+=31;break;
case 4:sum_day+=30;break;
case 5:sum_day+=31;break;
case 6:sum_day+=30;break;
case 7:sum_day+=31;break;
case 8:sum_day+=31;break;
case 9:sum_day+=30;break;
case 10:sum_day+=31;break;
case 11:sum_day+=30;break;
case 12:sum_day+=31;break;
default:break;
}
}
if(month<1||month>12){cout<<"日期月份不正确"<<endl;return YN-=1;} else{return sum_day;}
}
int count_Date::count_day(void)
{
if (month==2)
{
if(ly){
if(day>0&&day<30){ return sum_day+=day;;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
if(!ly){
if(day>0&&day<29){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
}
if(month==1 ||month==3 || month==5 || month==7&& month==8 || month==10 ||month==12)
{
if (day>0&&day<32){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
if( month==4 ||month==6 || month==9 || month==11)
{
if (day>0&&day<31){ return sum_day+=day;}else{cout<<"日期号数不正确"<<endl;return YN-=1;}
}
}
int main(void)
{
//1.
int i,y,m,d,countDay,countYear;
//2.
cout<<"请输入年,月,日:" ;
cin>>y>>m>>d;
cin.ignore();
//3.
count_Date this_day(y,m,d);
this_day.leap_year();
countYear=this_day.count_year();
countDay=this_day.count_month();
countDay=this_day.count_day();
//4.
cout<<y<<"-"<<m<<"-"<<d<<" 是 ";
switch(countYear)
{
case 365:cout<<"平年 ";break;
case 366:cout<<"润年 ";break;
default:break;
}
if(this_day.YN==0)
{
cout<<" 这天是这一年的第"<<countDay<<"天"<<endl;
}
system("pause");
return 0;
}
相关文章推荐
- 给定某年某日,将其转化为这一年的第几天并输出。
- 某日是一年中第几天?
- 输入一个日期,算出这一天是这一年的第几天
- 定义一个结构体变量(包括年月日)。计算某日在一年中是第几天?(注意还要有闰年的判断)
- 计算某月某日为一年中第几天
- 设计一个函数传入年月日返回这一天是这一年的第几天
- 按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某年某月某日,计算并输出它是这一年的第几天。 /* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天 函数参数:
- 数据连续化思想---判断一年中的第几天
- c# 获取某天是一年中的第几天
- ACM之判断某日是该年第几天
- 判断一年的第几天
- 判断一天是一年的第几天(关系运算代替算术运算)
- c语言计算这是一年中的第几天
- 用户输入一个日期计算是星期几以及是一年中的第几天
- [C#]数字颠倒输出;判断某天是一年中的第几天
- 【程序14】 TestDay.java 题目:输入某年某月某日,判断这一天是这一年的第几天?
- summer vacation:【项目3】输出对应的那一天是这一年的第几天
- C#求该日期是这一年中的第几天
- C/C++学习:判断某日是当年第几天
- 输入某年某月某日,判断这一天是这一年的第几天?考虑闰年的情况