[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;
} 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号