2014-01-13 26 views
-1

我想檢索當前系統小時,當Button1的用戶點擊了var「CT」將當前系統時間+ 1爪哇 - 隨時間(小時和分鐘)工作

然後,我想當var ct =當前系統小時時,程序將文本字段文本設置爲「完成」,但我似乎無法處理該時間。

我在主類:

Calendar now = Calendar.getInstance(); 
     int hour = now.get(Calendar.HOUR_OF_DAY); 
     int minute = now.get(Calendar.MINUTE); 
     int second = now.get(Calendar.SECOND); 
int ct=0; 


When user click Button1 
    name = jTextField1.getText(); 
     ct = minute + 1;  
     jLabel3.setText("Ends at "+ct); 

現在,我怎麼永久運行的方法來檢查,如果克拉=當前小時?

+1

你的問題到底是什麼?請寫下您遇到的錯誤。 –

+0

您好,正如我在prelast語句中所說的:現在我該如何永久運行一個方法來檢查ct =當前小時? –

+1

你的問題不清楚。你想要實現某種計時器嗎? – Radiodef

回答

1

方法來檢查是否ct==current-hour

public static boolean compareToHour(int arg) 
{ 
    Calendar temp = Calendar.getInstance(); 
    int tempHour = temp.get(Calendar.HOUR_OF_DAY); 
    return arg==tempHour; 

} 

比較兩個,到處運行下面的方法:compareToHour(ct)

+0

嘿,它的工作。非常感謝,歡呼。 –

+0

沒問題。感謝:D – mjkaufer

+0

僅供參考,麻煩的舊日期時間類,例如['java.util.Date'](https://docs.oracle.com/javase/8/docs/api/java/util/ Date.html),['java.util.Calendar'](https://docs.oracle.com/javase/8/docs/api/java/util/Date.html)和'java.text.SimpleTextFormat'現在是[legacy](https://en.wikipedia.org/wiki/Legacy_system),由[java.time]代替(https://docs.oracle.com/javase/8/docs/api/java/ time/package-summary.html)類。 –

2

Java的日期/時間處理是很好公認是非常糟糕的。如果你有自由,那麼你更喜歡Joda-Time庫。

DateTime now = new DateTime(); 
int hour = now.getHourOfDay(); 

對我來說,它比Java的日期/時間提供了更多的可讀性。再加上有」實際持續時間,日期只支持,一次只能等......

+0

或一行:'int hour = DateTime.now()。getHourOfDay();' –

+0

+1 JodaTime –

+0

FYI,[Joda-Time](http://www.joda.org/joda-time/)項目現在處於[維護模式](https://en.wikipedia.org/wiki/Maintenance_mode),團隊建議遷移到[java.time](http://docs.oracle.com/javase/8 /docs/api/java/time/package-summary.html)類。 –

0

TL;博士

ZonedDateTime.now(ZoneId.of("America/Montreal")) 
      .getHour() 

使用java.time

現代化的方法是使用java.time類。

以UTC獲取當前時刻。

Instant instant = Instant.now(); 

調整到期望的/預期的時區。您可以檢查JVM的當前默認時區。但是要知道,在運行期間,可以通過JVM中任何應用程序的任何線程中的任何代碼來更改默認值。因此,如果至關重要,請指定所需的/預期的時區,詢問用戶是否需要。

應用ZoneId得到ZonedDateTime對象。

ZoneId z = ZoneId.of("America/Montreal"); // Or ZoneId.systemDefault() 
ZonedDateTime zdt = instant.atZone(z); 

您可以詢問小時。

int hour = zdt.getHour(); 

關於java.time

java.time框架是建立在Java 8和更高版本。這些類取代了日期時間類legacy,如java.util.Date,Calendar,& SimpleDateFormat

Joda-Time項目現在位於maintenance mode,建議遷移到java.time類。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。規格是JSR 310

從何處獲取java.time類?

ThreeTen-Extra項目與其他類擴展java.time。這個項目是未來可能增加java.time的一個試驗場。您可以在這裏找到一些有用的類,如Interval,YearWeek,YearQuartermore