问题描述:
(1)定义一个结构体变量(包括年、月、日),要求输入年、月、日,计算输出该日是该年的第几天。
(2)输入两个人的生日,求出他们相差多少天。
代码:
#include <iostream>
using namespace std;
int mydate(int y,int m,int d) //自定义函数days,其中有三个整型变量。
{
int a=0,b=0; //声明2个变量a,b为整型并都赋予初值为0。
switch (m) //switch语句执行,变量为月份。
{
case 1:
a=0;
break;
case 2:
a=1;
break;
case 3:
a=-1;
break;
case 4:
a=0;
break;
case 5:
a=0;
break;
case 6:
a=1;
break;
case 7:
a=1;
break;
case 8:
a=2;
break;
case 9:
a=3;
break;
case 10:
a=3;
break;
case 11:
a=4;
break;
case 12:
a=4;
break;
}
if (m>2&&((y%4==0&&y%100!=0)||(y%400==0))) //当出现比2月大的月份考虑闰年问题。
b=1;
else b=0;
return (d=(30*(m-1)+d+a+b)); //返回求的天数。
}
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date;
cout<<"input year,month,day:";
while (cin>>date.year>>date.month>>date.day)
{
int days;
days=mydate(date.year,date.month,date.day);
cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天."<<endl;
}
return 0;
}
运行结果: