Вам нужно сделать это следующим образом
private void updateAlarmDate(String nextAlarm) {
if (nextAlarm.length()==0 || nextAlarm == "") {
return;
}
else
{
DateFormat sdf = new SimpleDateFormat("EEE hh:mm aa");
Date alarmDate = null;
try {
alarmDate = sdf.parse(nextAlarm);
} catch (ParseException e) {
e.printStackTrace();
}
int alarmDay = alarmDate.getDay();
Calendar now = Calendar.getInstance();
Date currentDate = now.getTime();
int todayDay = currentDate.getDay();
int daysDiff = 0;
if (todayDay > alarmDay) {
daysDiff = ((7 + (alarmDay - todayDay)) % 7) + 1;
} else {
daysDiff = ((7 + (alarmDay - todayDay)) % 7);
}
now.add(Calendar.DATE, daysDiff);
AlarmFulldate = now.getTime();
AlarmFulldate.setHours(alarmDate.getHours());
AlarmFulldate.setMinutes(alarmDate.getMinutes());
AlarmFulldate.setSeconds(0);
}
}
long millis = AlarmFulldate.getTime () - новая дата (). GetTime ();
Переменная миллис будет иметь миллисекунды.
Используйте следующий код для получения дней, часов и минут от миллис
days = (int) (millis / (1000 * 60 * 60 * 24));
hours = (int) ((millis - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
min = (int) (millis - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours))/(1000 * 60);
Надеюсь, это поможет вам