2014-12-04 60 views
0

我對Java很陌生,所以請耐心等待。 所以我目前正在製作一個程序,當用戶啓動程序時,一個後臺秒錶/定時器將運行。當計時器運行時,用戶將輸入命令,這些命令將顯示時間。我正在嘗試使用類似於重生計時器的方法,用戶在運行時不會看到時間,但當用戶輸入怪物的命令時,它會在重新生成時顯示。我希望能夠製作背景秒錶嗎?

這個程序不會有任何GUI,並會以文字顯示所有內容。

這是我現在所擁有的:

 System.out.println("Start?"); 
    char s = in.next().charAt(0); 
    if (s == 'S') 
    {   
     do 
     { 
      System.out.println("Enter camp number:"); 
      char cn = in.next().charAt(0); 

      if (cn == 'A') 
       System.out.println("Raptor's respawn time is at " + min + ":" + sec + "\n"); 
      else if (cn == 'B') 
       System.out.println("Wolf's respawn time is at " + min + ":" + sec + "\n"); 
      else if (cn == 'X') 
       { 
        x = true; 
        System.out.println("Thank you for using my program!"); 
       } 
      else 
       System.out.println("Invalid input"); 
     } 
     while (!x); 
    } 
    else 
     System.out.println("Invalid input, please restart program."); 
} 

因此,當用戶輸入S爲定時器/秒錶開始運行,當用戶輸入A或B程序會顯示時間,他們將重生。

高級謝謝! :d

+0

您正在修改的'min'和'sec'變量是?你在開始時是否從鍵盤上讀取它們? – RockOnRockOut 2014-12-04 17:37:40

+0

是的。每個if語句中都會修改'min'和'sec'。 – LSLabiga 2014-12-04 18:10:06

回答

0

你可以做這樣的事情:

Calendar c = Calendar.getInstance(); 
int hrs = c.get(Calendar.HOUR); 
int mnts = c.get(Calendar.MINUTE); 
int secs = c.get(Calendar.SECOND); 

然後你就可以通過打印

System.out.printf("Monster will respawn in %d minutes and %d seconds", mnts+min, secs+sec); 

當然打印重新產卵時間,你也將不得不做一些驗證,如如果secs+sec給你多於60個,則在分鐘中加1,並保持秒數剩餘量。

+0

這不是我正在尋找的,但我使用了一些你輸入的代碼,它將開始時間並獲得當前時間。但它一直說,start_time和current_time應該是long而不是int。但如果我把它轉換成很長的時間,將會變成1417716395:1417716295,我不知道發生了什麼。 – LSLabiga 2014-12-04 18:08:18

+0

哦,是的,對不起,它應該很長 - 我會修改我的答案。它返回從1970年1月1日起花費的秒數,所以這就是爲什麼它看起來像一個大數字。你想要日曆當前時間嗎?有點像3:14:15 pm? – RockOnRockOut 2014-12-04 18:12:55

+0

是的,那正是我要找的。謝謝! – LSLabiga 2014-12-04 18:16:17

相關問題