package javacodebook.core.timedisplay; import java.util.Date; /** * Zeigt die verbleibende Zeit an. Je nachdem, wie gross die * verbleibende Zeit ist, werden Sekunden, Minuten, Stunden * oder Tage angezeigt. */ public class RemainingTime { long end; private static final String NO_REMAINING_TIME_STR = "-"; private static final int MAX_SHOW_SECONDS = 240; private static final int MAX_SHOW_MINUTES = 180; private static final int MAX_SHOW_HOURS = 72; public RemainingTime(long endDate) { this.end = endDate; } public RemainingTime(Date endDate) { this.end = endDate.getTime(); } public String getRemainingTime() { long now = System.currentTimeMillis(); long left = (end - now) / 1000; if (left < 0) return NO_REMAINING_TIME_STR; else if (left < MAX_SHOW_SECONDS) return("" + left + " Sekunden"); else if (left < 120) return ("1 Minute"); else if (left < MAX_SHOW_MINUTES*60) return ("" + left/60 + " Minuten"); else if (left < MAX_SHOW_HOURS*3600) return ("" + left/(60*60) + " Stunden"); else if (left < 3600*48) return ("1 Tag"); else return ("" + left/(60*60*24) + " Tage"); } }