第十七周项目4-两人生日相差几多天
第十七周项目4-两人生日相差多少天
(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; }
运行结果:
学习心得:
好好学习 天天向上