您的位置:首页 > 编程语言 > C语言/C++

该日在本年第几天

2016-06-21 21:03 447 查看
/*
*Copyright (c) 2016 烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作    者:史红浩
*完成日期:2016年 6 月 21 日
*问题描述:定义一个结构体变量(包括年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。
*输入描述:年月日
*输出描述:当年第几天
*版 本 号:v1.0
*/
#include <iostream>
using namespace std;
struct y_m_d
{
int year;
int month;
int day;
};

int days(y_m_d d)
{
if(d.year%4==0&&d.year%100!=0||d.year%400==0)
{
if(d.month==1)
return d.day;
else if(d.month==2)
return d.day+31;
else if(d.month==3)
return d.day+31+29;
else if(d.month==4)
return d.day+31+29+31;
else if(d.month==5)
return d.day+31+31+29+30;
else if(d.month==6)
return d.day+31+31+31+29+30;
else if(d.month==7)
return d.day+30+31+31+30+29+30;
else if(d.month==8)
return d.day+31+31+31+30+29+30+31;
else if(d.month==9)
return d.day+31+31+31+30+29+30+31+31;
else if(d.month==10)
return d.day+31+31+31+30+29+30+30+31+31;
else if(d.month==11)
return d.day+31+31+31+30+29+30+31+31+31+30;
else if(d.month==12)
return d.day+31+31+31+30+29+30+31+31+31+30+30;
}
else
{
if(d.month==1)
return d.day;
else if(d.month==2)
return d.day+31;
else if(d.month==3)
return d.day+31+28;
else if(d.month==4)
return d.day+31+28+31;
else if(d.month==5)
return d.day+31+31+28+30;
else if(d.month==6)
return d.day+31+31+31+28+30;
else if(d.month==7)
return d.day+30+31+31+30+28+30;
else if(d.month==8)
return d.day+31+31+31+30+28+30+31;
else if(d.month==9)
return d.day+31+31+31+30+28+30+31+31;
else if(d.month==10)
return d.day+31+31+31+30+28+30+30+31+31;
else if(d.month==11)
return d.day+31+31+31+30+28+30+31+31+31+30;
else if(d.month==12)
return d.day+31+31+31+30+28+30+31+31+31+30+30;
}

}
int main()
{
y_m_d date;
int days(y_m_d);
int day_sum;
cin>>date.year>>date.month>>date.day;
day_sum=days(date);
cout<<day_sum<<endl;
return 0;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息