2017-05-05 6 views
0

Ich versuche, SQL-Abfrage zu iterieren, indem ich den Zeitstempel auf X Tage früher mit jeder Iteration setze.Ich habe bemerkt, dass meine Daten beginnen, Unsinn wiederzugeben, sobald 25. Tag zurück gesucht wird . habe ich festgestellt, dass Android-Studio für die zweite Reihe Warnung „Numeric Überlauf in Ausdruck“ zeigt in diesem Codebeispiel:.?"Numerischer Überlauf im Ausdruck" Zeitstempel manipulieren

int daysBack = 25; 
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000 * daysBack; 

getTodaysBeginningMilis ist mein selbsterklärend Methode Warum es diese Warnung nicht zeigen 86400000 ist die Anzahl der Milis in 24 Stunden

Antwort

0

Es scheint, dass dieser Teil "86400000 * daysBack" einen numerischen Überlauf verursacht, weil b Andere Zahlen sind ganze Zahlen und Multiplikation verursacht ganzzahlige außerhalb der Grenzen. Um dieses Problem zu lösen, habe ich alle Zahlen langen Typs gemacht:

long daysBack = 25L; 
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000L * daysBack; 
Verwandte Themen