您的位置:首页 > 其它

第17周项目4(2)-日期结构体

2014-12-19 18:33 399 查看
/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:week17-project4-2.cpp
*作者:高赞
*完成日期:2014年 12 月 19 日
*版本号:v1.0
*
*问题描述:输入两人生日,计算他们相差多少天。
*/
#include <iostream>
using namespace std;
int days(int,int,int);
int deffer(int,int,int,int);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date d1,d2;
cout<<"输入第一个人的出生年、月、日:";
cin>>d1.year>>d1.month>>d1.day;
cout<<"输入第二个人的出生年、月、日:";
cin>>d2.year>>d2.month>>d2.day;
int days1,days2,defferdays;
days1=days(d1.year,d1.month,d1.day);
days2=days(d2.year,d2.month,d2.day);
defferdays=deffer(d1.year,d2.year,days1,days2);
cout<<"两人出生相差"<<defferdays<<"天。"<<endl;
return 0;
}
int days(int y, int m, int d)
{
int i,sumdays;
for (i=1; i<=m; ++i)
{
switch (i)
{
case 1:
sumdays=0;
break;
case 3:
{
if (((y%4 == 0 && y%100 != 0) || y%400 == 0))
sumdays+=29;
else sumdays+=28;
}
break;
case 2:
case 4:
case 6:
case 8:
case 9:
case 11:
sumdays+=31;
break;
case 5:
case 7:
case 10:
case 12:
sumdays+=30;
break;
}
}
sumdays+=d;
return(sumdays);
}
int deffer(int y1,int y2,int d1,int d2)
{
int i,j,days=0;
if(y1>y2)
{
i=y2;
j=y1;
days=d1-d2;
}
else
{
i=y1;
j=y2;
days=d2-d1;
}
for(; i<j; ++i)
{
days+=365;
if (((i%4 == 0 && i%100 != 0) || i%400 == 0))
days++;
}
return days;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: