public class Countdown { public static void main(String[] args) { final int secondsInMinute = 60; final int secondsInHour = 3600; final int secondsInDay = 86400;
int year = 2012; int month = 12 - 1; int dayOfMonth = 22; int hourOfDay = 23; int minute = 59; int second = 59;
Calendar calendar = new GregorianCalendar(year, month, dayOfMonth, hourOfDay, minute, second); final long targetTimeMillis = calendar.getTimeInMillis(); final Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { long difference = targetTimeMillis - System.currentTimeMillis(); if (difference <= 0) { timer.cancel(); } long secondsDiff = difference / 1000; long days = secondsDiff / secondsInDay; long hours = secondsDiff % secondsInDay / secondsInHour; long minutes = secondsDiff % secondsInHour / secondsInMinute; long seconds = secondsDiff % secondsInMinute; System.out.println(String.format("%1$3d天%2$02d时%3$02d分%4$02d秒", days, hours, minutes, seconds)); } }, 0, 1000); } }