繁体   English   中英

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

[英]How do I auto flag related records in an arraylist based on date and time?

我正在设计一个简单的 covid 19 跟踪系统。 每次客户(ArrayList 中的对象)访问 Shop(ArrayList 中的对象)时,系统都会创建存储在 ArrayList 中的访问 object。

超类详细信息。

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 package 创建日期时间以及访问 object 像这样

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);
    }

我的客户 class 构造函数看起来像这样

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;
  }

我的商店 class 构造函数看起来像这样

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 的客户访问商店,则在前后 1 小时时间范围内访问该商店的所有客户都会自动被标记为密切接触者 (CLOSE)。 我还想知道如何创建不是 localdatetime.now 的时间和日期,因为我需要生成访问以测试标记算法是否有效。

使用LocalDateTime.of()方法之一(可在此处找到)创建特定时间。

为了跟踪可能的标志,一种解决方案是跟踪Shop的最后一次有风险的Visit ,并且每次对该Shop进行新的访问以检查它是否足够新,如果是,则更新该 Shop 的Status VisitShopCustomer 使用LocalDateTime.minusHours()比较时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM