第十七周项目4-两人生日相差多少天

来源:互联网 发布:网店源码是什么 编辑:程序博客网 时间:2024/04/28 15:54

(2)输入两个人的生日,求出他们相差多少天。

/*Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:test.cpp*作 者:  冷基栋*完成日期:2014年12月22日*版 本 号:v1.0*问题描述:定义一个结构体变量(包括年、月、日),要求输入年,月、日,计算两人生日相差几天*输入描述:6个整数,代表两个人的生日*程序输出:一个整数,两人生日相差几天*/#include <iostream>using namespace std;int day(int x,int y,int z);struct Date{    int year;    int month;    int day;};int main(){    Date date1,date2;    cout<<"input year,month,day:";    cin>>date1.year>>date1.month>>date1.day;    cin>>date2.year>>date2.month>>date2.day;    int days1,days2,days;    //计算days    days1=day(date1.year,date1.month,date1.day);    days2=day(date2.year,date2.month,date2.day);    days=(date2.year-date1.year)*365+days2+365-days1;    cout<<"他们生日相差"<<days<<"天."<<endl;    return 0;}int day(int x,int y,int z){    int a;    if ((x%4==0&&x%100!=0)||x%400==0)        switch(y)        {        case 1:            a=z;            break;        case 2:            a=31+z;            break;        case 3:            a=31+29+z;            break;        case 4:            a=31+30+29+z;            break;        case 5:            a=31*2+30+29+z;            break;        case 6:            a=31*2+30*2+29+z;            break;        case 7:            a=31*3+30*2+29+z;            break;        case 8:            a=31*4+30*2+29+z;            break;        case 9:            a=31*4+30*3+29+z;            break;        case 10:            a=31*5+30*3+29+z;            break;        case 11:            a=31*5+30*4+29+z;            break;        case 12:            a=31*6+30*4+29+z;            break;        }    else        switch(y)        {        case 1:            a=z;            break;        case 2:            a=31+z;            break;        case 3:            a=31+28+z;            break;        case 4:            a=31+30+28+z;            break;        case 5:            a=31*2+30+28+z;            break;        case 6:            a=31*2+30*2+28+z;            break;        case 7:            a=31*3+30*2+28+z;            break;        case 8:            a=31*4+30*2+28+z;            break;        case 9:            a=31*4+30*3+28+z;            break;        case 10:            a=31*5+30*3+28+z;            break;        case 11:            a=31*5+30*4+28+z;            break;        case 12:            a=31*6+30*4+28+z;            break;        }    return a;}


运行结果:

学习心得:

好好学习 天天向上

 

 

0 0
原创粉丝点击