第一次周赛J题

问题链接:https://vjudge.net/problem/HDU-2005

问题PE点:(1)输入数据多组 (2)数据格式为YYYY/MM/DD

程序说明:定义一个结构包含年月日,用函数计算天数

AC代码:

#include <iostream>
using namespace std;
struct date
{
 int year,month,day;
}a;
int days(int x,int y,int z,int&o)
{
    int h=((y-1)/2);
    int i=(y/2);
    if(y==1)
    {
        o=z;
    }
    if(y==2)
    {
        o=31+z;
    }
    if(y>2&&y<8)
    {
        if(x%400==0||(x%4==0&&x%100!=0))
        {
            if(y%2!=0)
            {
                o=31*h+30*(h-1)+29+z;
            }
            else
            {
                o=31*i+30*(i-2)+29+z;
            }
        }
        else
        {
            if(y%2!=0)
            {
                o=31*h+30*(h-1)+28+z;
            }
            else
            {
                o=31*i+30*(i-2)+28+z;
            }
        }
    }
    else if(y>7)
    { 
        if(x%400==0||(x%4==0&&x%100!=0))
        {
            if(y%2!=0)
            {
                o=31*(h+1)+30*(h-2)+29+z;
            }
            else
            {
                o=31*i+30*(i-2)+29+z;
            }
        }
        else
        {
            if(y%2!=0)
            {
                o=31*(h+1)+30*(h-2)+28+z;
            }
            else
            {
                o=31*i+30*(i-2)+28+z;
            }
        }
    }
    return o;
}
int main()
{
    date *p=&a;
    int x,y,z,b;
    char h,i;
    int&o=b;
    while(cin>>(p->year)>>h>>(p->month)>>i>>(p->day))
    {
    	if(h=='/'&&i=='/')
    	{
    	    days(p->year,p->month,p->day,b);
            cout<<b<<endl;
	}
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43973189/article/details/84933275
今日推荐