结构体练习——计算输入的日期为本年度第几天

/*需求:特定的某天是该年的第几天
	输入:年月日
	输出:根据输入计算它是本年的第几天
*/
#include <iostream>
using namespace std;

struct Date
{//使用结构体定义输入的具体日子
	int year;
	int month;
	int day;
};
int days(Date,int&);//对函数全局声明
int main()
{
	Date date;//结构体声明
	int day_sum=0;

	cout<<"请输入 年、月、日"<<endl;
	cin>>date.year>>date.month>>date.day;

	day_sum=days(date,day_sum);//days函数的调用

	cout<<date.month<<"月"<<date.day<<"日 是"
		<<date.year<<"年的第"<<day_sum<<"天"
		<<endl;
	return 0;
}

int days(Date date,int& day_sum)//结构体作为形参,参数传递,地址
{     
	int m;//月份计数器
	int day_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	//多的是,你不知道的输入错误 o(︶︿︶)o 
	///int day_sum=0;
	for(m=1;m<date.month;m++)//注意day_month[]下标从0开始有定义,但是此处从1开始计数,
		day_sum=day_sum+day_month[m-1];//计算当前输入日期所在月之前所有天数总和
	day_sum=day_sum+date.day;//+本月已过天数
/*	for(int i=0;i<12;i++)
		cout<<day_month[i]<<"  "<<endl;;
*/
    if((date.year%4==0&&date.year%100!=0
		||date.year%400==0)&&date.month>=3)//闰年且所求日期为3月及以后
		/*注意&& 和||的优先级和结合性,前者优先级大,都是左结合,
		故if中判断闰年的条件末尾加了括号,*/
		day_sum++;//闰年的闰二月要加一天
	return day_sum;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值