Java抽象类与接口 实现以下功能:输入某个年份,利用Calendar类实现判断这一年是不是闰年。用除以4或400判断
时间: 2024-02-13 21:03:07 浏览: 21
好的,以下是Java代码实现:
```
import java.util.Calendar;
public class LeapYearChecker {
public static void main(String[] args) {
int year = 2020; // 你可以输入任何你想要的年份
if (isLeapYear(year)) {
System.out.println(year + "是闰年");
} else {
System.out.println(year + "不是闰年");
}
}
public static boolean isLeapYear(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
// 如果这一年能被4整除,但不能被100整除,或者能被400整除,那么这一年就是闰年
return (calendar.getActualMaximum(Calendar.DAY_OF_YEAR) > 365);
}
}
```
在这个程序中,我们使用了Java自带的`Calendar`类来获取这一年有多少天。如果这一年有366天,那么就是闰年,否则不是。
相关问题
java 作业内容: 抽象类与接口 输入某个年份,利用Calendar类实现判断这一年是不是闰年。
好的,这是一个关于抽象类和接口的Java作业题目,主要考察学生对于Java基础知识的掌握程度和编程能力。以下是一个可能的实现方法:
首先,需要定义一个接口 `LeapYearChecker`,包含一个方法 `isLeapYear(int year)`,用于判断给定的年份是否为闰年。接口定义如下:
```java
public interface LeapYearChecker {
boolean isLeapYear(int year);
}
```
接着,定义一个抽象类 `AbstractLeapYearChecker`,实现 `LeapYearChecker` 接口中的 `isLeapYear` 方法,并提供一个 `check` 方法,用于在控制台中输出判断结果。抽象类定义如下:
```java
import java.util.Calendar;
public abstract class AbstractLeapYearChecker implements LeapYearChecker {
@Override
public boolean isLeapYear(int year) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
return calendar.getActualMaximum(Calendar.DAY_OF_YEAR) > 365;
}
public void check(int year) {
System.out.printf("%d is%s a leap year.\n", year, isLeapYear(year) ? "" : " not");
}
}
```
最后,定义一个 `Main` 类,用于读取用户输入的年份,并调用 `AbstractLeapYearChecker.check` 方法进行判断。`Main` 类定义如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Please input a year: ");
int year = scanner.nextInt();
scanner.close();
AbstractLeapYearChecker checker = new AbstractLeapYearChecker() {};
checker.check(year);
}
}
```
这样,用户输入一个年份后,程序会输出该年份是否为闰年。可以通过继承 `AbstractLeapYearChecker` 类,自定义实现 `isLeapYear` 方法来实现其他判断闰年的算法。
c语言编写程序:输入一个年份,判断是否闰年,判断闰年的功能用自定义函数实现
以下是一个用 C 语言编写的程序,可以实现输入一个年份,判断是否为闰年。判断闰年的功能使用了自定义函数 `isLeapYear()`,该函数返回值为 1 表示是闰年,返回值为 0 表示不是闰年。
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d年是闰年。\n", year);
} else {
printf("%d年不是闰年。\n", year);
}
return 0;
}
```
程序中,首先通过 `scanf()` 函数获取用户输入的年份,并将其赋值给 `year` 变量。然后调用自定义函数 `isLeapYear()` 判断该年份是否为闰年,根据函数的返回值输出相应的结果。函数中的判断条件与平年和闰年的定义相同,即能被 4 整除但不能被 100 整除的年份或者能被 400 整除的年份为闰年,否则为平年。