我正在设计一个简单的新冠肺炎19追踪系统。每当客户(ArrayList中的对象(访问商店(ArrayList中的对象。
超类Details。
public class Details {
private String name;
private String phoneNumber;
private Status status;
// Customer
public Details(String name, String phoneNumber, Status status) {
this.name = name;
this.phoneNumber = phoneNumber;
this.status = status;
}
我使用java.time包创建日期时间和Visit对象,比如
public class Visit extends Details {
private String dateTimeFinal;
private String shopName;
public Visit(String name, String phoneNumber,String shopName, Status status) {
super(name, phoneNumber, status);
this.shopName = shopName;
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter dateTimeFormatted = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
dateTimeFinal = dateTime.format(dateTimeFormatted);
}
我的客户类构造函数看起来像这个
public class Customer extends Details {
private String password;
public Customer (String name, String phoneNumber, String password, Status status){
super(name, phoneNumber, status);
this.password = password;
}
我的商店类构造函数看起来像这个
public class Shop extends Details{
private String managerName;
public Shop(String name, String phoneNumber, Status status, String managerName){
super(name, phoneNumber, status);
this.managerName = managerName;
}
我在另一个文件中也有一个状态枚举,看起来像这个
public enum Status{
NORMAL,
CASE,
CLOSE
}
我现在要做的是,如果一个被标记为CASE的客户访问了一家商店,那么在&之后自动被标记为密切联系人(close(。我也想知道如何创造时间;不是localdatetime.now的日期,因为我需要生成访问来测试标记算法是否有效。
使用LocalDateTime.of()
方法之一(可在此处找到(创建特定时间。
为了跟踪可能的标志,一种解决方案是跟踪Shop
的最后一个有风险的Visit
,并且每次对该Shop
进行新的访问以检查它是否足够新,并且如果是,则更新Visit
、Shop
和Customer
的Status
。使用LocalDateTime.minusHours()
比较时间。