2016-10-11 48 views
1

我是編程新手,我目前正在學習它的整個面向對象方面。我很無助,但如何更新我的日曆對象。不太清楚我的更新方法中需要更新日曆。以下是我正在使用的兩個課程。正在更新日曆

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

這是我的主類:

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

任何幫助將不勝感激!

+0

你嘗試過什麼更新日曆?在網上搜索例子? – nhouser9

+0

如果您不是強制使用'Calendar',請改用新的java.time' API。 – Kayaman

回答

1

在更新功能,你只更新卡的實例。您必須更新小時分和第二個變量。你可以這樣做。

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

要獲得時間上的差異,你可以使用了Thread.Sleep()

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

工作。謝謝! – Bengan

+0

@Bengan如果答案可以隨意標記爲正確 – georoot