[YTU]_2865( 结构体--日期计算)

已经声明了一个日期的结构体类型,如下
struct  Date{
int year;
int month;
int day;
};
定义一个日期变量,进行年、月、日的输入,计算该日期是本年中的第几天。
在下面代码的基础上完成,提交时只提交begin所在行和end所在行之间的代码
#include <iostream>
using namespace std;
 
struct Date{
int year;
int month;
int day;
};
 
int main()
{
  Date d;
  cin>>d.year>>d.month>>d.day;
  //bengin
 
  //end
  return 0;
}

输入

年 月  日

输出

该日期在本年中的第几天

样例输入

2002 3 1

样例输出

60

提示

别忘记考虑闰年

#include <iostream>
using namespace std;
 
struct Date{
int year;
int month;
int day;
};
 
int main()
{
  Date d;
  cin>>d.year>>d.month>>d.day;
  //bengin
   
    if((d.year%4==0&&d.year%100!=0)||(d.year%400==0))
    {
        switch(d.month)
        {
        case 1:cout<<d.day<<endl;break;
        case 2:cout<<31+d.day<<endl;break;
        case 3:cout<<31+29+d.day<<endl;break;
        case 4:cout<<31+29+31+d.day<<endl;break;
        case 5:cout<<31+29+31+30+d.day<<endl;break;
        case 6:cout<<31+29+31+30+31+d.day<<endl;break;
        case 7:cout<<31+29+31+30+31+30+d.day<<endl;break;
        case 8:cout<<31+29+31+30+31+30+31+d.day<<endl;break;
        case 9:cout<<31+29+31+30+31+30+31+31+d.day<<endl;break;
        case 10:cout<<31+29+31+30+31+30+31+31+30+d.day<<endl;break; 
        case 11:cout<<31+29+31+30+31+30+31+31+30+31+d.day<<endl;break; 
        case 12:cout<<31+29+31+30+31+30+31+31+30+31+30+d.day<<endl;break; 
        }
    }
    else
    {
        switch(d.month)
        {
        case 1:cout<<d.day<<endl;break;
        case 2:cout<<31+d.day<<endl;break;
        case 3:cout<<31+28+d.day<<endl;break;
        case 4:cout<<31+28+31+d.day<<endl;break;
        case 5:cout<<31+28+31+30+d.day<<endl;break;
        case 6:cout<<31+28+31+30+31+d.day<<endl;break;
        case 7:cout<<31+28+31+30+31+30+d.day<<endl;break;
        case 8:cout<<31+28+31+30+31+30+31+d.day<<endl;break;
        case 9:cout<<31+28+31+30+31+30+31+31+d.day<<endl;break;
        case 10:cout<<31+28+31+30+31+30+31+31+30+d.day<<endl;break; 
        case 11:cout<<31+28+31+30+31+30+31+31+30+31+d.day<<endl;break; 
        case 12:cout<<31+28+31+30+31+30+31+31+30+31+30+d.day<<endl;break; 
        }
    }
 
  //end
  return 0;
}

posted @ 2017-06-05 13:14  衣带渐宽、为伊憔悴  阅读(160)  评论(0编辑  收藏  举报