簡體   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