2016-01-17 3 views
0

В настоящее время я создаю программу GUI, которая в основном является таймером, используя только потоковую передачу. В настоящее время у меня есть программа с моими заявлениями if. Пожалуйста помоги.Java Timer using Threading

@Override 
public void run() { 

    while (count2 != 0) { 
     try { 

      Thread.sleep(1000); 
      if (b == 0 && a > 0) { 
       b = 60; 
       a -= 1; 
      } 
      if (b > 59) { 
       a += 1; 
       b = 0; 
      } 
      if (c < 61 && c > 0) { 
       c -= 1; 
      } 

      if (c > 59) { 
       b += 1; 
       c = 60; 
       c -= 1; 
      } 
      if (b > 0 && b < 60 && c == 0) { 
       b -= 1; 
       c = 60; 
      } 



      jLabel4.setText("" + c); 
      jLabel5.setText("" + b); 
      jLabel6.setText("" + a); 
      count2--; 

     } catch (InterruptedException ex) { 
      Logger.getLogger(Timer.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
    JOptionPane.showMessageDialog(this, "Time's up"); 

} 

А часы B находится в нескольких минутах C секунды

count2 = (a * 360) + (b * 60) + c; 

Спасибо :)

+1

Прежде всего, называют переменные 'hours',' 'и минутах seconds' вместо' Ā', '' b' и c'. Затем подумайте о своей логике - вы хотите уменьшить «секунды», а затем справиться с ситуацией, когда «секунды» становятся отрицательными. –

ответ

0
public static int[] splitToComponentTimes(BigDecimal biggy) 
{ 
    long longVal = biggy.longValue(); 
    int hours = (int) longVal/3600; 
    int remainder = (int) longVal - hours * 3600; 
    int mins = remainder/60; 
    remainder = remainder - mins * 60; 
    int secs = remainder; 

    int[] ints = {hours , mins , secs}; 
    return ints; 
} 

Я думаю, что это может решить вашу проблему. Просто поставьте секунды в методе, после чего он вернет часы, минуты и секунды.

Оригинал сообщения: Convert seconds value to hours minutes seconds?