如何根据日期和时间自动标记arraylist中的相关记录?

hec6srdp  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(381)

我在设计一个简单的covid19跟踪系统。每次客户(arraylist中的对象)访问商店(arraylist中的对象)时,系统都会创建存储在arraylist中的visits对象。
超类细节。

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包创建datetime和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    
}

我现在要做的是,如果一个被标记为案例的客户访问了一个商店,那么在1小时时间范围内访问该商店的所有客户在访问前后都会自动被标记为密切联系(close)。我还想知道如何创建不是localdatetime.now的time&date,因为我需要生成访问来测试标记算法是否有效。

nfeuvbwi

nfeuvbwi1#

使用一个 LocalDateTime.of() 方法(可在此处找到)来创建特定时间。
为了跟踪可能的标志,一个解决方案是跟踪最后一个标志 Visit 为了一个 Shop ,每次新的访问 Shop 检查它是否足够新,如果是,更新 StatusVisit , Shop ,和 Customer . 使用 LocalDateTime.minusHours() 比较一下时间。

相关问题