这是我的要求,我需要知道我做对了吗? 确定年份是否为闰年算法 如果年份可以平均除以4,则为闰年 o除非年份可以平均除以100,否则它不是闰年 除非年份可以平均除以400,否则它是闰年 否则,它不是闰年
private static boolean isLeapYear(int userInput){
boolean leapYear= false;
if (userInput % 4 == 0 ){
leapYear = true;
if (userInput % 4 == 0 && userInput % 100 ==0) {
leapYear = false;
if(userInput % 400 == 0){
leapYear = true;
}
}
}
else {
leapYear = false;
}
return leapYear;
}
答案 0 :(得分:0)
我在C ++中使用过这个。
return((userInput%400)||((userInput%4)&&!(userInput%100)));
答案 1 :(得分:0)
最好在有效的闰年使用此条件
(((year%4 == 0) && (year%100 !=0)) || (year%400==0))
这是一个类似的C program to check leap year。
答案 2 :(得分:0)
我使用了这个简短的方法:
private static Boolean isLeapYear(int year) {
return year % 4 == 0 ? (year % 100 == 0 ? ( year % 400 == 0 ? true : false) : true) : false ;
}
答案 3 :(得分:0)
year = int(input("Enter year to determine if it is a leap year"))
def leap_year(year):
"""This is a function to determine if a year
is a leap year"""
if year%4==0 and year%100!=0:
print("This is a Leap year")
if year%400==0:
print ("This is a Leap year")
else:
print ("This is not a leap year")
leap_year(year)
答案 4 :(得分:0)
从1700年到1917年,官方日历为儒略历。从那时起,我们就使用公历系统。从儒略历到公历的转换发生在1918年,即1月31日之后的第二天是2月14日。这意味着1918年的第32天是2月14日。
在两个日历系统中,2月是唯一一个天数可变的月份,a年有29天,其他所有年份有28天。在儒略历中,leap年可被4整除,而在格里高利历中,leap年可为以下之一:
可除以400。
可以被4整除,不能被100整除。
因此leap年的程序将是:
def leap_notleap(year):
yr = ''
if year <= 1917:
if year % 4 == 0:
yr = 'leap'
else:
yr = 'not leap'
elif year >= 1919:
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
yr = 'leap'
else:
yr = 'not leap'
else:
yr = 'none actually, since feb had only 14 days'
return yr
答案 5 :(得分:0)
使用 python 和其他语言,您可以使用以下属性:如果减去 1 天到三月,您将获得二月的最后一天。如果是闰年,那一天是29。
from datetime import datetime, timedelta
def is_leap_year(year: int):
marzo = datetime(year, 3, 1)
febrero = marzo - timedelta(1)
if febrero.day == 29:
return True
else:
return False
答案 6 :(得分:0)
每年能被 4 整除的年份都是闰年,除了 对于可以被 100 整除的年份,但这些百年年份 如果它们能被 400 整除,则为闰年。例如, 1700年、1800年和1900年不是闰年,而是1600年和1600年 2000 是。[2]
— 美国海军天文台
来源:https://en.wikipedia.org/wiki/Gregorian_calendar
因此,对于符合闰年资格的年份,它应该是:
在您的代码中使用此事实,如下所示:
if((userInput % 400 == 0) || (userInput % 4 == 0 && userInput % 100 != 0)) {
System.out.println(userInput + " is a leap year");
}
对于生产代码,我建议您使用 OOTB java.time API:
if (java.time.Year.isLeap(userInput)) {
System.out.println(userInput + " is a leap year");
}
从 Trail: Date Time 了解有关现代日期时间 API 的更多信息。
答案 7 :(得分:-1)
userInput % 4 == 0 && userInput % 100 ==0
相当于userInput % 400 == 0
和userInput % 4 == 0
那么它绝对是闰年所以不需要检查任何其他条件。