2013-07-25 2 views
-4

Я хочу показать обратный отсчет 10 секунд. например 10-9-8-7..., взяв время из системы в java. Как я могу это достичь? Можете ли вы дать мне исходный код?Время ввода системы в java

+2

Пожалуйста, посетите FAQ на этой странице. –

+0

Перевод: «Можете ли вы сделать это для меня, поэтому мне не нужно ничего делать» –

ответ

1

Сочетание декрементной петли for (от 10 до 1) и Thread.sleep должно соответствовать вашим потребностям.

+0

'Thread # sleep' не гарантирует, что приложение действительно будет спать на количество миллисекунд, которое вы предоставляете в качестве аргумента. Обратитесь к документации, которую вы опубликовали: * с учетом точности и точности ** системных таймеров и планировщиков *. –

+0

@LuiggiMendoza Это верно, но для целей этой задачи оно должно быть достаточно точным. – biziclop

0

Попробуйте

import java.util.Scanner; 
import java.util.Timer; 
import java.util.TimerTask; 


public class TimeCal { 
static int interval; 
static Timer timer; 

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    System.out.print("Input in seconds => : "); 
    String secs = sc.nextLine(); 
    int delay = 1000; 
    int period = 1000; 
    timer = new java.util.Timer(); 
    interval = Integer.parseInt(secs); 
    System.out.println(secs); 
    timer.scheduleAtFixedRate(new TimerTask() { 
     public void run() { 
      System.out.println(setInterval()); 

     } 
    }, delay, period); 
} 
private static final int setInterval(){ 
    if(interval== 1) timer.cancel(); 
    return --interval; 
} 
} 
1

Вы можете использовать самые Timer «s scheduleAtFixedRate метод, который принимает начальное delay и period согласно которому задача должна быть запущена

final Timer t = new Timer(); 
    t.scheduleAtFixedRate(new TimerTask() { 

     int i = 10; 
     @Override 
     public void run() { 
      System.out.println(i); 
      i--; 
      if(i <= 0) { 
       t.cancel(); 
      } 
     } 
    }, 1000, 1000); 
+1

хорошее решение, +1 – Elbek

+0

Почему все используют Таймер с пустым конструктором? вы можете указать как delay, так и Runnable в конструкторе. Изменить: oh wait, какой таймер? использовать или качать? Я предпочитаю качели. –

+0

его 'util.Timer' – sanbhat

Смежные вопросы