文章目录

  • 一、题目描述
  • 二、解题过程
  • 1.闰年判断
  • 2.参考程序



一、题目描述

2020 年 7 月 1 日是中国 共 产 党 成立 99 周年纪念日。

中国 共 产 党 成立于 1921 年 7 月 23 日。

请问从1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包含多少分钟?

二、解题过程

1.闰年判断

四年一闰;百年不闰;四百年再闰。

关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。

因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.242199日,一般用四位小数计算,及0.2422,四年共短0.9688日,故每四年增加一日,并且把这多出了的一天放到二月份,所以闰年的二月份有29天,这一天也叫闰日,这一年共有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。

也就我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是365.2422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。
通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。

按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。

bool leap(int year){
	return (year%4==0&&year%100!=0||year%400==0);
}

闰年返回值为1,否则返回0;

2.参考程序

代码如下(示例):

#include <iostream>

using namespace std;

int Feb[2]={28,29};

bool leap(int year){
	return (year%4==0&&year%100!=0||year%400==0);
}

int main(){
	int sum=0;
	int L=0;
	int nL=0;
	for(int i=1922;i<=2019;i++){
		if(leap(i)){
			L++;
		}
		else{
			nL++;
		}
	}
	sum=(L+nL+1)*(31+31+30+31+30+31+30+31+30+31)+L*29+nL*28+Feb[leap(2020)]+(L+nL)*31+9;
	sum*=24*60;
	cout<<sum;
	return 0;
}