2016-07-28 4 views
0

Я хочу вычесть System.currentTimeMillis() из часов + минуты, взятых из timepicker. Однако System.currentTimeMillis() намного больше по сравнению с часами + минуты, преобразованными в MilliSeconds.Как вычесть System.currentTimeMillis() из часов + минуты, взятые из timepicker?

Это мой код:

// setting my time in milliseconds. hour1 and minute1 taken from timepicker. 
app.setTimeMillisDosageTime(TimeUnit.HOURS.toMillis(hour1) + TimeUnit.MINUTES.toMillis(minute1)); 

У меня есть TimerTask, где я вычитанием System.currentTimeMillis.

TimerTask task = new TimerTask() 
{ 
    timeInMillis = app.getTimeMillisDosageTime(); 
    TimerTask task = new TimerTask() 
    { 
     @Override 
     public void run() 
     { 
      long ellapsedMillis = timeinMillis - System.currentTimeMillis(); 
     } 
     timer = new Timer(false); 
     timer.schedule(task,0,1000); 
    } 
} 

Но мой elapsedMillis всегда отрицательный. Любое решение?

+0

Я думаю, вы должны вычесть '' timeinMillis' из currentTimeMillis' – 0xDEADC0DE

ответ

0
TimeUnit.HOURS.toMillis 
// given number is converted to milliseconds. if you give 1 as input 60*60*1000 is output. 
TimeUnit.HOURS.toMillis(1) = 60* 60 * 1000 
TimeUnit.MINUTES.toMillis(1) = 60 * 1000 

System.currentTimeMillis() //milli seconds elapsed from January 1, 1970 UTC(coordinated universal time) 

Но то, что вы требуете эти часы и минуты, установленные на текущую дату, то считая, сколько секунд прошло с 1970 года

Calendar chosenTime = Calendar.getInstance(); 
chosenTime.set(Calendar.HOUR_OF_DAY, selectedHour); 
chosenTime.set(Calendar.MINUTE, selectedMinute); 

chosenTime.getTime().get(Time) // This gives you exact seconds that can be substracted from System.currentTimeMillis. 
Смежные вопросы