1000 * 60 * 60 * 24 * 30 приводит к отрицательному числу [дубликата]
На этот вопрос уже есть ответ:
Почему эти две операции умножения дают разные результаты? 2 ответаЯ пытаюсь вычислить 30 дней, умножая миллисекунды, однако результат постоянно оказывается отрицательным числом для значения days_30, и я не уверен почему.
Любые предложения очень ценятся!
КОД SNIPPET:
// check to ensure proper time has elapsed
SharedPreferences pref = getApplicationContext()
.getSharedPreferences("DataCountService", 0);
long days_30 = 1000 * 60 * 60 * 24 * 30;
long oldTime = pref.getLong("smstimestamp", 0);
long newTime = System.currentTimeMillis();
if(newTime - oldTime >= days_30){
начение @ days_30 приводит к: -1702967296
Приписка
double days_30 = 1000 * 60 * 60 * 24 * 30;
double oldTime = pref.getLong("smstimestamp", 0);
double newTime = System.currentTimeMillis();
if(newTime - oldTime >= days_30){
Результат в меньшем, но все же отрицательном числе. -1.702967296E9