Я наткнулся на этот метод, который форматирует время до тех пор, пока будильник не погаснет. Иногда, например, когда я устанавливаю время до 13:46, и мое мобильное время составляет 13:44, я получаю текст, что осталось 1 минута до моего будильника, что, очевидно, является ложной информацией. Вот код, который делает материал:Правильное форматирование времени в Java
private static String formatAlarmTime(Context c) {
if (!App.getState().alarm().on()) {
return "";
}
long t = App.getState().alarm().nextAlarm().getTimeInMillis() - System.currentTimeMillis() - 1;
t = t/60/1000;
int m = (int) (t % 60);
int h = (int) (t/60);
String minSeq = (m == 0) ? "" :
(m == 1) ? c.getString(R.string.minute) :
c.getString(R.string.minutes, Long.toString(m));
String hourSeq = (h == 0) ? "" :
(h == 1) ? c.getString(R.string.hour) :
c.getString(R.string.hours, Long.toString(h));
int index = ((h > 0) ? 1 : 0) | ((m > 0) ? 2 : 0);
String[] formats = c.getResources().getStringArray(R.array.alarm_set);
return String.format(formats[index], hourSeq, minSeq);
}
Массив упоминается как это:
<string-array name="alarm_set">
<item>This alarm is set for less than 1 minute from now</item>
<item>This alarm is set for %1$s from now</item>
<item>This alarm is set for %2$s from now</item>
<item>This alarm is set for %1$s and %2$s from now</item>
</string-array>
Кстати, если кто был заинтересован, этот код приходит от this site
Любые идеи?
О, спасибо. К сожалению, я не знаю, как это исправить. У вас есть какие-нибудь рекомендации ? – Traabefi
@Traabefi Я даже не уверен, что он сломан. Но я думаю, вы бы предпочли округлить число минут? –