⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d_5_2.cpp

📁 C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体
💻 CPP
字号:
// D_1_2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
bool leapyear(int);
int interYears(int y1,int m1,int y2,int m2);
int interDays(int y1,int m1,int d1,int y2,int m2,int d2);
int daysOnMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
	int year1,month1,day1,year2,month2,day2,total;
	cout <<"请输入年月日:";
	cin >> year1>>month1>>day1;
	cout <<"请输入年月日:";
	cin >> year2>>month2>>day2;
    total = interYears(year1,month1,year2,month2);
	total += interDays(year1,month1,day1,year2,month2,day2);
	cout << "期间相隔了"<<total<<"天。";
	cin.get(); cin.get(); //等待结束,以便调测程序,可以删除
}

inline bool leapyear(int year)
{
  if (((year%4==0 && year%100!=0)||year%400==0))
	  return true;
  else
	  return false;
}

int interYears(int y1,int m1,int y2,int m2)
{
	int days,i;
	if (y2> y1+1)  // 如果不是相邻的两个年份,则求这两年之间的总天数
	{
	   days = (y2-y1-1)*365;
	   for (i=y1+1;i<y2;++i)
	     if (leapyear(i)) 
			++days;
	   return days;
	}
	else 
	   return 0;
}

int interDays(int y1,int m1,int d1,int y2,int m2,int d2)
{
	int i=m1,j=0,days=0;
	if (y1!=y2) // 计算年份不同时的天数
	{
		for (;i<12;++i)
			days += daysOnMonth[i];
		for (;j<m2-1;++j)
			days += daysOnMonth[j];
		days += daysOnMonth[m1-1]-d1+1; // 计算当月当日到当月月尾有多少天
		days += d2;  // 计算当月开始到当月当日有多少天
		if (leapyear(y1)&&m1<=2)
			++days;
		if (leapyear(y2)&&m2>2)
			++days;
	}
	else
	{
		if (m1!=m2)
		{  
			for (;i<m2-1;++i)
			  days += daysOnMonth[i];
			days += daysOnMonth[m1-1]-d1+1; // 计算当月当日到当月月尾有多少天
		    days += d2;  // 计算当月开始到当月当日有多少天
    		if (leapyear(y1)&&m1<=2)
			++days;
		}
		else
			days =d2-d1+1;
	}
	return days;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -