2016-10-11 4 views
1

Ich bin ziemlich neu in der Programmierung und ich lerne derzeit den gesamten objektorientierten Aspekt davon. Ich habe keine Ahnung, wie ich mein Kalenderobjekt aktualisieren soll. Nicht ganz sicher, was in meiner Update-Methode zur Aktualisierung des Kalenders benötigt wird. Im Folgenden sind die zwei Klassen, die ich verwende.Aktualisierung Kalender

public class Time { 
    private int hour; 
    private int minute; 
    private int second; 
    Calendar cal = Calendar.getInstance(); 

    public Time(){ 
     Calendar cal = Calendar.getInstance(); 
     this.hour = cal.get(Calendar.HOUR_OF_DAY); 
     this.minute = cal.get(Calendar.MINUTE); 
     this.second = cal.get(Calendar.SECOND); 
    } 
    public int getHour(){ 
     return this.hour; 
    } 
    public int getMinute(){ 
     return this.minute; 
    } 
    public int getSecond(){ 
     return this.second; 
    } 
    public String toString(){ 
     return this.hour + ":" + this.minute + ":" + this.second; 
    } 
    public void update(){ 
     cal.setTime(new Date());  
    } 
} 

Und hier ist meine Hauptklasse:

public class Exercise2b { 
    public void demo() { 
     String message1, message2; 
     int hour, minute, second; 
     Time dt = new Time(); 
     hour = dt.getHour(); 
     minute = dt.getMinute(); 
     second = dt.getSecond(); 
     message1 = "Klockan är " + minute + " minuter över " + hour + " (+" + second + " sekunder)"; 
     message2 = dt.toString(); 
     JOptionPane.showMessageDialog(null, message1); 
     JOptionPane.showMessageDialog(null, message2); 
     dt.update(); 
     message2 = dt.toString(); 
     JOptionPane.showMessageDialog(null, message2); 
    } 

    public static void main(String[] args) { 
     Exercise2b prog = new Exercise2b(); 
     prog.demo();  
     } 
    } 

Jede Hilfe wäre sehr dankbar!

+0

haben Sie alles versucht, um den Kalender zu aktualisieren? online nach Beispielen gesucht? – nhouser9

+0

Wenn Sie nicht gezwungen sind, 'Calendar' zu verwenden, verwenden Sie stattdessen die neue' java.time' API. – Kayaman

Antwort

1

In der Update-Funktion aktualisieren Sie nur die Instanz des cal. Sie müssen auch die Stunden min und zweiten Variablen aktualisieren. Du kannst es so machen.

public void update(){ 
    cal.setTime(new Date()); 
    this.hour = cal.get(Calendar.HOUR_OF_DAY); 
    this.minute = cal.get(Calendar.MINUTE); 
    this.second = cal.get(Calendar.SECOND); 
} 

Um den Unterschied in der Zeit zu erhalten Sie Thread.Sleep verwenden können()

import javax.swing.*; 
public class Exercise2b { 
public void demo() { 
    String message1, message2; 
    int hour, minute, second; 
    Time dt = new Time(); 
    hour = dt.getHour(); 
    minute = dt.getMinute(); 
    second = dt.getSecond(); 
    message1 = "Klockan är" +minute+"minuter över"+hour+"(+"+second+"sekunder)"; 
    message2 = dt.toString(); 
    JOptionPane.showMessageDialog(null, message1); 
    JOptionPane.showMessageDialog(null, message2); 

    try 
    { 
     Thread.sleep(5000); 
    } 
    catch(Exception e) 
    { 
     System.out.println("Exception Occured"); 
    } 

    dt.update(); 

    message2 = dt.toString(); 
    JOptionPane.showMessageDialog(null, message2); 

} 

public static void main(String[] args) { 
    Exercise2b prog = new Exercise2b(); 
    prog.demo();  
    } 
} 
+0

Das hat funktioniert. Vielen Dank! – Bengan

+0

@Bengan wenn die Antwort hilft, fühlen Sie sich frei, das als richtig zu markieren – georoot

Verwandte Themen