C语言--判断一个年份是否是闰年(详解)-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一.闰年的定义

闰年是指在公历格里高利历中年份可以被4整除但不能被100整除的年份或者可以被400整除的年份。简单来说闰年是一个比平年多出一天的年份即2月有29天。闰年的目的是校准公历与地球公转周期的差异确保时间计算的准确性。举例来说2024年是一个闰年而2100年则不是闰年。


 二.闰年与平年的区别

闰年与平年的主要区别在于二月的天数。

1. 平年平年有365天二月有28天。

2. 闰年闰年有366天二月有29天。

闰年与平年之间的差异是为了调整公历与地球公转周期之间的误差。地球公转周期约为365.2425天而公历将一年定义为365天。通过在每4年中添加一个闰日即在二月份增加一天可以减少一部分误差。

然而为了进一步纠正误差规定了如下三条规则来确定闰年

- 年份能被4整除但不能被100整除的是闰年例如2008年2012年
- 年份能被400整除的也是闰年例如2000年
- 年份能被100整除但不能被400整除的不是闰年例如1900年不是闰年。

这样的规则确保了时间计算的准确性并且确定了闰年和平年之间的区别。


三.判断闰年的条件

能整除4且不能整除100或能整除400(算法核心)

	if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)//能整除4且不能整除100 或能整除400
	{
		printf("%d是闰年\n",i);
	}

四.完整代码 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>  //引用头文件
int main()
{
	int i;
	printf("请输入一个年份 ");
	scanf("%d", &i);
	if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)//能整除4且不能整除100 或能整除400
	{
		printf("%d年是闰年\n", i);
	}
	else
		printf("不是闰年\n");
	return 0;
}

五.运行结果

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6