boolean isLeapYear()方法:判断当前日期是否是闰年
时间: 2023-11-20 20:26:58 浏览: 92
好的,我来回答你的问题。以下是一个示例Java代码实现isLeapYear()方法:
```
public static boolean isLeapYear(int year) {
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
// 整百年能被400整除的是闰年
return true;
} else {
return false;
}
} else {
// 非整百年能被4整除的是闰年
return true;
}
} else {
return false;
}
}
```
在这个方法中,我们输入一个年份作为参数,然后通过一系列的条件判断来确定这个年份是否是闰年。具体实现方式是,如果这个年份能被4整除,那么它有可能是闰年;如果它还能被100整除,那么它可能不是闰年,但是如果它能被400整除,那么它仍然是闰年;如果它不能被4整除,那么它一定不是闰年。最后,这个方法会返回一个布尔值,表示输入的年份是否是闰年。
相关问题
作业2:声明一个日期类MyDate,包含属性:年、月、日,并在MyDate类中声明几个方法: 1、boolean isLeapYear():判断当前日期的是闰年吗? 2、void set(int y, int m, int d):修改年,月,日为新日期 3、void puls(int years, int months, int days):加上years年,months月,days天后的日期 并在测试类Test04的main方法中创建对象,并调用测试
MyDate类的代码如下:
public class MyDate {
private int year;
private int month;
private int day;
public MyDate(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
public boolean isLeapYear() {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return true;
} else {
return false;
}
}
public void set(int y, int m, int d) {
year = y;
month = m;
day = d;
}
public void plus(int years, int months, int days) {
year += years;
month += months;
day += days;
while (day > getDaysOfMonth(year, month)) {
day -= getDaysOfMonth(year, month);
month++;
if (month > 12) {
year++;
month = 1;
}
}
}
private int getDaysOfMonth(int year, int month) {
switch (month) {
case 2:
if (isLeapYear()) {
return 29;
} else {
return 28;
}
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
}
测试类Test04的代码如下:
public class Test04 {
public static void main(String[] args) {
MyDate d1 = new MyDate(2021, 2, 28);
System.out.println(d1.isLeapYear()); // 输出false
d1.set(2021, 3, 1);
System.out.println(d1.isLeapYear()); // 输出false
d1.plus(1, 1, 1);
System.out.println(d1.year + "-" + d1.month + "-" + d1.day); // 输出2022-4-2
MyDate d2 = new MyDate(2000, 2, 29);
System.out.println(d2.isLeapYear()); // 输出true
d2.plus(1, 1, 1);
System.out.println(d2.year + "-" + d2.month + "-" + d2.day); // 输出2001-4-2
}
}
输出结果如下:
false
false
2022-4-2
true
2001-4-2
java判断一个年份是否是闰年
要判断一个年份是否是闰年,可以使用以下代码:
```java
import java.util.Scanner;
public class LeapYearChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt();
boolean isLeapYear = false;
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
isLeapYear = true;
}
} else {
isLeapYear = true;
}
}
if (isLeapYear) {
System.out.println(year + "年是闰年");
} else {
System.out.println(year + "年不是闰年");
}
}
}
```
在这段代码中,首先通过 `Scanner` 类获取用户输入的年份。然后,通过嵌套的 `if` 语句进行判断。如果年份能被4整除,我们进一步检查是否能被100整除。如果能被100整除,我们再次检查是否能被400整除。只有当年份能被4整除但不能被100整除,或者能被400整除时,才将 `isLeapYear` 设置为 `true`。最后,根据 `isLeapYear` 的值输出判断结果。
请注意,这是一种常见的判断闰年的方法,根据闰年的规则进行逻辑判断。