簡體   English   中英

比較本地日期和本地時間

[英]Compare localdate and localtime

我必須制作一個管理電影院廣告牌的應用程序。我有一個標准數據,其中包含電影的標題等數據。 我還有一個 session 類型的數據,其中包含 int 容量、本地時間、本地日期和電影。 我必須制定一種方法來消除 session 作為參數傳遞電影的標題、session 的日期和時間的方法。 該方法在for中的if中失敗了。 我不知道我做錯了什么。 可能是因為我如何比較本地數據類型的數據和本地時間?

public boolean quitarSesion(String tituloEliminar, LocalDate fechaEliminar, LocalTime horaEliminar)
    {
        int count=0;
        for(Sesion sesion: sesiones){
            if(sesion.pelicula.titulo==tituloEliminar && sesion.fecha==fechaEliminar && sesion.hora==horaEliminar){
                sesiones.remove(sesion);
                System.out.println("Sesion eliminada correctamente");
                count++;
                
            }
           
        if(count==0){
            System.out.println("No se ha eliminado ninguna sesion");
            return false;         
        
        }
        else{
            System.out.println("Sesion eliminada correctamente");
            return true;  
        }
            
    }

您的代碼存在多個問題。

sesion.pelicula.titulo==tituloEliminar

==比較'references',這不是你想要的,你想檢查字符串是否相等。 ==不這樣做。 您正在尋找sesion.pelicula.titulo.equals(tituloEliminar)

sesiones.remove(sesion);

你不能在循環sesiones時從sesiones中刪除。 記住要刪除的內容,然后在最后執行。 或者,不要使用for(:)語法,而是獲取一個迭代器,當您找到要刪除的迭代器時,在其上調用.remove() (調用var it = sesiones.iterator(); ,替換for 循環 while while (it.hasNext()) ,用it.next()獲取 session ,最后如果你的if說:這個需要消失,調用it.remove()

如何比較 LocalDate 和 LocalTime

== vs .equals的東西,它適用於所有非原始類型(因此,對於 LocalDate 和 LocalTime 你還需要使用.equals ,不要使用== ,這不會像你認為的那樣)。 否則,這里沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM