/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: date.cpp
* 作 者:
* 完成日期: 年 月 日
* 版本号: v1.0
* 输入描述:年月日
* 问题描述:输出对应的那一天是这一年的第几天
* 输出:第几天
*/
#include <iostream>
#include<stdio.h>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
int days(int n,int m, int z);
int month2day(int month,int year);
bool isRunYear(int year);
int main()
{
Date date[2];
cout<<"请第一个人的输入 年 月 日:";
cin>>date[0].year>>date[0].month>>date[0].day;
int day1,day2;
day1=days(date[0].day,date[0].month,date[0].year);
cout<<"请输入第二个人的 年 月 日 :";
cin>>date[1].year>>date[1].month>>date[1].day;
day2=days(date[1].day,date[1].month,date[1].year);
cout<<"两人相差"<<day1-day2<<"日"<<endl;
cout<<"按enter继续"<<endl;
fflush(stdin);
getchar();
main();
return 0;
}
int days(int n,int m, int z){
int x,i,sum=0;
for(i=1;i<m;++i){
x=month2day(i,z);
sum+=x;
}
return sum+n;
}
bool isRunYear(int year){
if((year%4==0&&year%100!=0)||(year%400==0)){
return true;
}else{
return false;
}
}
int month2day(int month,int year){
int day=0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
case 2:
if(isRunYear(year)){
day=29;
}else{
day=28;
}
break;
}
return day;
}
运行结果: