我工作的一個IRC Twitch.tv BOT(PircBot)創建一個定時器,我想實現正常運行時間chatcommand這將顯示流在線多長時間!的Java:沒有GUI
我在谷歌搜索了一下,我只找到這需要一個GUI解決方案。
能Some1告訴我什麼庫是很好用的還是給我一些exampel代碼?
我需要顯示秒,分鐘,小時,天。
首先,我想過做一個普通的定時器,其對所有+1秒,但我認爲它更容易,有一些適當的函數來處理這樣的「計數」 -timers,對不對?
我沒事任何提示!
謝謝:)
多數民衆贊成我想出現在:
在我的主類,我得到了一個計時器,我呼籲:
utimecounttimer();
我的計時器是這樣的:
public void utimecounttimer() {
uptimetimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (isstreamlive == true){
UptimeCount.Uptimestart();
}else{
UptimeCount.Uptimestop();
}
}
}, 1000, 1000);
}
,然後我UptimeCount類是在這裏:
public class UptimeCount {
public static long startTime = 0;
public static long OnlineTimeMillis = 0;
public static float OnlineTimeSec = 0;
public static float OnlineTimeMin = 0;
public static float OnlineTimeHour = 0;
public static float OnlineTimeDay = 0;
public static void Uptimestart(){
if(startTime == 0){
startTime = System.currentTimeMillis();
}else
if(startTime != 0){
OnlineTimeMillis = System.currentTimeMillis()-startTime;
OnlineTimeSec = OnlineTimeMillis /1000F;
OnlineTimeMin = OnlineTimeMillis /(60*1000F);
OnlineTimeHour = OnlineTimeMillis /(60*60*1000F);
OnlineTimeDay = OnlineTimeMillis /(24*60*60*1000F);
}
System.out.println("Seconds"+OnlineTimeSec);
System.out.println("Minutes"+OnlineTimeMin);
System.out.println("Hours"+OnlineTimeHour);
System.out.println("Days"+OnlineTimeDay);
}
public static void Uptimestop(){
startTime = 0;
OnlineTimeMillis = 0;
OnlineTimeSec = 0;
OnlineTimeMin = 0;
OnlineTimeHour = 0;
OnlineTimeDay = 0;
}
}
然後,最後但並非最不重要的金正日在我的主類下面的行獲得的相關信息在聊天:
if (message.equalsIgnoreCase("!uptime")) {
sendMessage(channel," Stream is running for: "+UptimeCount.OnlineTimeDay +" Days, "+UptimeCount.OnlineTimeHour +" Hours. "+UptimeCount.OnlineTimeMin +" Minutes and " +UptimeCount.OnlineTimeSec +" Seconds.");
}
我沒有測試它,但是我想我必須格式化毫秒輸出的花車,然後它應該工作,對吧?
如果你可以使用番石榴,你有'StopWatch' – fge
爲什麼不寫你的自定義線程,不斷增加這個時間計數器,並有一個幫助方法嵌入在它告訴你計時器秒,分鐘,小時和天運行?將它設置爲守護程序線程,以便在主應用程序未運行時不運行,但僅在主應用程序運行時才運行。 –
使用系統時鐘檢測已經過了多長時間。使用Joda庫來獲取適當的值來顯示。 –