AFAIK speichert Java Daten in langen Variablen als Millisekunden. Folglich wird es eines Tages keinen Wert mehr geben (denn long hat ein Maximum), der der Zeit dieses Augenblicks entspricht. Wissen Sie, wann dies der Fall sein wird?
Antworten
Zu viele Anzeigen?Das lässt sich leicht herausfinden:
public class Test {
public static void main(String[] args) {
System.out.println(new java.util.Date(Long.MAX_VALUE));
}
}
Ergibt eine Ausgabe (auf meinem Rechner):
Sun Aug 17 07:12:55 GMT 292278994
Möglicherweise müssen Sie etwas abziehen von Long.MAX_VALUE
zu bewältigen, wenn Ihre Zeitzone den Bereich "lang" übersteigt, aber es wird einen vernünftigen Richtwert geben :)
Nach der aktuellen Schaltjahr Vorschriften wird die durchschnittliche Anzahl der Tage pro Jahr sein
365 + 1/4 - 1/100 + 1/400 = 365,2425 Tage pro Jahr
Das bedeutet, dass wir im Durchschnitt 31556952000 Millisekunden pro Jahr haben.
Der Long-Wert gibt die Anzahl der Millisekunden seit der Epoche (1. Januar 1970) und die maximale Zahl, die durch einen Java-Long dargestellt wird, ist 2 63 - 1, so dass die folgende Berechnung
1970 + (2 63 - 1) / 31556952000
zeigt, dass diese Darstellung das Jahr 292278994 überlaufen wird.
Dies kann, wie Jon Skeet weist darauf hin bestätigt werden durch
-> System.out.println(new Date(Long.MAX_VALUE));
Sun Aug 17 08:12:55 CET 292278994