/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者:申玉迪
* 完成日期:2014 年 3 月 1 日
* 版 本 号:v1.0
*/
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
} date;
/*输入两个人的生日,看和1900年1月1日相差多少天,然后在相减*/
int main()
{
int d1=0,m1=0,y1=0,d2=0,m2=0,y2=0,t,i,j;/*d1,m1,y1代表第一个人的出生年月日,同理d2,m2,d2,
t表示相差天数,i和j分别作为循环的年和月*/
cout<<"第一个人的出生日期:";
cin>>date.year>>date.month>>date.day;
for(i=1900; i<date.year; i++)//算出这年之前到1900年共多少天
{
y1+=365;
if(i%400==0||(i%4==0&&i%100!=0))
{
y1++;
}
}
for(j=0; j<date.month; ++j)//算出本年到生日共多少天
{
int x;
if(j==2)
{
if(date.year%400==0||(date.year%4==0&&date.year%100!=0))
{
x=29;
}
else
{
x=28;
}
}
else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
x=31;
else if(j==4||j==6||j==9||j==11)
x=30;
else if(j==0)
x=date.day;
m1+=x;
}
d1=y1+m1;//生日到1900年1月1日共多少天
cout<<"第二个人的出生日期:";
cin>>date.year>>date.month>>date.day;
for(i=1900; i<date.year; i++)
{
y2+=365;
if(i%400==0||(i%4==0&&i%100!=0))
{
y2++;
}
}
for(j=0; j<date.month; ++j)
{
int x;
if(j==2)
{
if(date.year%400==0||(date.year%4==0&&date.year%100!=0))
{
x=29;
}
else
{
x=28;
}
}
else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
x=31;
else if(j==4||j==6||j==9||j==11)
x=30;
else if(j==0)
x=date.day;
m2+=x;
}
d2=y2+m2;
t=d2-d1;
if(t<0)
{
t=-t;//若出现负数,则将其化为正数
}
cout<<"两人生日相差"<<t<<"天."<<endl;
}
原来那一大块想用函数的,但试了好久还是不行,就干脆不用了