java代码根据开船日期和到港日期判断未开船,航行中,已到港的船舶数量
时间: 2023-09-09 07:12:32 浏览: 57
可以使用Java的Date类和Calendar类来实现。
首先,定义一个船只类Ship,包含以下属性:
- 船名
- 船号
- 开船日期
- 到港日期
然后,定义一个判断船只状态的方法,如下所示:
```java
public enum ShipStatus {
NOT_DEPARTED, // 未开船
SAILING, // 航行中
ARRIVED // 已到港
}
public class Ship {
private String name;
private String number;
private Date departureDate;
private Date arrivalDate;
public Ship(String name, String number, Date departureDate, Date arrivalDate) {
this.name = name;
this.number = number;
this.departureDate = departureDate;
this.arrivalDate = arrivalDate;
}
public ShipStatus getStatus() {
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
if (now.before(departureDate)) {
return ShipStatus.NOT_DEPARTED;
} else if (now.after(arrivalDate)) {
return ShipStatus.ARRIVED;
} else {
return ShipStatus.SAILING;
}
}
// 省略getter和setter方法
}
```
在Ship类中,定义了一个枚举类型ShipStatus,表示船只的状态。getStatus()方法根据当前时间和船只的开船日期和到港日期来判断船只的状态,返回对应的枚举值。
使用方法如下:
```java
public class Main {
public static void main(String[] args) {
Date departureDate = new Date(122, Calendar.OCTOBER, 1);
Date arrivalDate = new Date(122, Calendar.OCTOBER, 10);
Ship ship = new Ship("ship1", "001", departureDate, arrivalDate);
ShipStatus status = ship.getStatus();
switch (status) {
case NOT_DEPARTED:
System.out.println("船只尚未开船");
break;
case SAILING:
System.out.println("船只正在航行中");
break;
case ARRIVED:
System.out.println("船只已到港");
break;
default:
break;
}
}
}
```
输出结果为:
```
船只尚未开船
```
其中,Date的构造函数中的参数是int类型,分别表示年、月、日。Calendar类的getInstance()方法返回一个Calendar对象,getTime()方法返回一个表示当前时间的Date对象。在getStatus()方法中,使用before()和after()方法比较Date对象的大小。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)