evaluating localDate.now().minusDays(integer)



我一直在研究一个程序,该程序将一系列计划事件(自制ServiceRequest对象)存储在xml文件(f)中,当我想使用它们时,我调用了一个readData()方法(见下文),该方法将ServiceRequest加载到serviceQueueArrayList<ServiceRequest>)中,并在文件末尾标记一个null对象以标记ServiceRequest对象的末尾。

当我加载数组中的对象时,我一直在检查事件的日期(LocalDate对象)以删除超过 270 天的事件。现在这是我的问题:在将整数 270 更改为 180 以尝试跟踪更少的数据后,大多数事件都被删除了(即不应该的当前事件,就像今天的所有事件一样......从字面上看,这是我唯一更改的内容,一旦我切换回 270 并从备份中恢复事件,一切都恢复正常。210似乎也导致我的评估失败。

不确定我错过了什么,也许是关于如何评估LocalDate.now().minusDays(XXX)?如果需要,我可以包含更多代码,但这是我唯一更改的内容,并且该方法非常基本:

public static void readData() {
    serviceQueue.clear();
    try {
        Boolean complete = false;
        FileReader reader = new FileReader(f);
        ObjectInputStream in = xstream.createObjectInputStream(reader);
        while(complete != true) {   
            ServiceRequest test = (ServiceRequest)in.readObject();      
            if(test != null && test.getDate().isAfter(LocalDate.now().minusDays(210))) { 
                serviceQueue.add(test); }
                else { complete = true; }
        }
        in.close(); } 
    catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } 
}

我使用 LocalDateTime 变量 startstop 来跟踪事件的日期/时间,因此 .getDate() 方法只是以LocalDate格式返回start

    public LocalDate getDate() { return start.toLocalDate(); }

datę 检查没问题。问题是将complete设置为true,以防日期不匹配。

if(test != null &&test.getDate().isAfter(LocalDate.now().minusDays(210))) { 
            serviceQueue.add(test); }
            else { complete = true; }

尝试以下代码:

if(test != null) { 
     if (test.getDate().isAfter(LocalDate.now().minusDays(210)) {
        serviceQueue.add(test);
     }
}
else { 
  complete = true; 
}

相关内容

  • 没有找到相关文章

最新更新