程序内容:
这串代码可以计算出任意年月日之间相差的天数(并且把闰年润月也计算在了其中)。
代码表达非常简单,只是细节表达有点耗费时间。
代码共有五段,第一至第四段是头文件,第五段是主函数。
第一段:目的是计算出在除第一与最后一年外中间年份的天数
#pragma once
int Month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
#ifndef _CALCULZTEYEARDAY_H
#define _CALCULZTEYEARDAY_Hconst int OneYear = 365;
class CalculateYearDay
{
public:
CalculateYearDay() {}
bool CalculateLeapYear(int NowYear);
int CalculateMiddleYearDay(int NowYear, int Age);
private:
int NowYear;int Age;
};bool CalculateYearDay::CalculateLeapYear(int NowYear)
{
if (NowYear % 4 == 0 && NowYear % 100 != 0 || NowYear % 400 == 0)
return true;
else return false;
}int CalculateYearDay::CalculateMiddleYearDay(int NowYear, int Age)
{
int day = 0;
CalculateYearDay CYD;
NowYear--;
Age -= 2;
day = OneYear * Age;
for (int i = 0;i < Age;i++)
{
NowYear--;
if ((CYD.CalculateLeapYear(NowYear)) == true)day++;
}
return day;
}#endif // !_CALCULZTEYEARDAY_H
第二段:目的是计算出第一年的天数
#pragma once
#include"CalculateYearDay.h"#ifndef _CALCULATEBIRTHYEARDAY_H
#define _CALCULATEBIRTHYEARDAY_Hclass CalculateBirthYearDay
{
public:
CalculateBirthYearDay(){}
int CalculateBirthMonthDay(int BirthMonth, int BirthYear, int BirthDay);
private:
int BirthYear;
int BirthMonth;
};int CalculateBirthYearDay::CalculateBirthMonthDay(int BirthMonth, int BirthYear,int BirthDay)
{