编写程序判断某一年是否为闰年

编写程序判断某一年是否为闰年,第1张

以下是一个Python程序,用于判断给定年份是否为闰年

===================================

def is_leap_year(year):  

"""    

判断给定年份是否为闰年    

:param year: 给定年份    

:return: True 如果是闰年,否则 False    

"""    

if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:  判镇腔

return True    

else:  

return False  

=====================================

该程序定义了一个名为 is_leap_year 的函数,该函数接受一个参数 year,表示要判断的年份。该函数使用了闰年的判断规则旅搜,即:

能被4整除但不能被100整除的年份是闰年(如2004年就是闰年);

能被400整除的年份也是闰年(如2000年就是闰年)。

如果给定年份满足以上任意一个条件,则返回 True,否则返回 False。

可以使用以下代码调用该函数:

======================================

year = 2023    

if is_leap_year(year):  掘衫

print(f"{year}年是闰年")  

else:  

print(f"{year}年不是闰年")  

======================================

在这个例子中,我们将2023年作为参数传递给 is_leap_year 函数,并打印出相应的结果。

不等价,因为判断闰年的标准是:1、能整除4且不能整除100 2、能整除400

你的意思是:

每4年有个闰年1896是闰年,4年后1900也是闰年除以4就是闰年

但严格上讲,"每4年一个闰年"这说法不严谨.应该是四年一闰,百年不闰,四百年再闰.

为什么呢?

1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year).公历的亩闭平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年.

2、但是,上面算法又有了一个问题.就是0.2422*4=0.9688,比一天还差0.0322天,每4年差0.0322天不算多,但每400年就会差了约3天.即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天.

所以,就规定了每四百年中要减迅枣裂少三个闰年.公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年.

综合以上2点,就有了现有的闰年判断标准.

能被4整岩蠢除且不能被100整除的为闰年。如2004年就是闰年,1900年不是闰年。世纪年能被400整除的是闰年,如2000年是闰年,1900年不是闰年。对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。如172800年是闰年,86400年不是闰年,因为虽然能被3200整除,但不能被172800整除。

一、问题分析

闰年的判断规则如下:

1.若某个年份能被4整除但不能被100整芹扰除,则是闰年。

2.若某个年嫌渣旦份能被400整除,则也是闰年。

二、根据闰年的判断规则,代码设计如下

import java.util.Scanner

class Bissextile{

public static void main(String[] args){

System.out.printtln("请输入年份")

int year//接收输入的年份

Scanner scanner = new Scanner(System.in)

year = scanner.nextln()

if(year<0||year>3000){

System.out.println("年份有误!")

}

if(year%4==0&&year%100!=0||year%400==0){

System.out.println(year+"是闰年")

}else{

System.out.println(year+"不是闰年")

}

}

}

扩展资料:

另外,闰年的判断还可以按照如下代码设计:

import java.util.Scanner

class LunTan1

{

public static void main(String[] args)

{

System.out.println("请输入一个年份")

Scanner scan=new Scanner(System.in)

int year=scan.nextInt()

scan.close()

ifleapyear(year)

}

private static void ifleapyear(int year){

if (year>0)

{

if (year%100==0)

{

if (year%400==0)

{

System.out.println("您输梁锋入的"+year+"年是闰年")

}

else

{

System.out.println("您输入的"+year+"年是平年")

}

}

else if (year%4==0)

{

System.out.println("您输入的"+year+"年是闰年")

}

else

{

System.out.println("您输入的"+year+"年是平年")

}

}

else

{

System.out.println("您的输入不合法,请确认后再次输入")

Scanner scan=new Scanner(System.in)

year=scan.nextInt()

scan.close()

ifleapyear(year)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12418157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存