问题链接: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;
}
}
}