У меня есть счетчик, вы устанавливаете дату, а затем можете получить время до этой даты, но мне нужно отобразить его в выбранном формате.Таймер - отсчет и отображение результата в определенном формате
EG: Если у меня есть 1 день, 13 часов, 43 минут и 30 секунд до конца, и установить формат:
«У вас есть: # d # дней, # ч # ч, # м # минут, чтобы умереть»
Тогда просто показать:
"у вас есть 1 день, 13 часов, 43 минут, чтобы умереть"
Но если вы установите формат:
"У вас есть: # ч # ч, # м # минут, чтобы умереть"
Тогда мне нужно дисплей:
" У вас есть 37 часов, 43 минуты, чтобы умереть »
(так что отсутствующий тип (дни) преобразуются в другие (часы))
У меня есть этот код: PS: S, M, H, D, W, что как раз второй в миллисекундах, минуты в миллисекундах и т.д. ...
public static String getTimerData(long time, String format) {
int seconds = -1, minutes = -1, hours = -1, days = -1, weeks = -1;
if (format.contains("#s#")) {
seconds = (int) (time/S);
}
if (format.contains("#m#")) {
if (seconds == -1) {
minutes = (int) (time/M);
} else {
minutes = (seconds/60);
seconds %= 60;
}
}
if (format.contains("#h#")) {
if (minutes == -1) {
hours = (int) (time/H);
} else {
hours = (minutes/60);
minutes %= 60;
}
}
if (format.contains("#d#")) {
if (hours == -1) {
days = (int) (time/D);
} else {
days = (hours/24);
hours %= 24;
}
}
if (format.contains("#w#")) {
if (days == -1) {
weeks = (int) (time/W);
} else {
weeks = (days/7);
days %= 7;
}
}
return format.replace("#w#", Integer.toString(weeks)).replace("#d#", Integer.toString(days)).replace("#h#", Integer.toString(hours)).replace("#m#", Integer.toString(minutes)).replace("#s#", Integer.toString(seconds));
}
И ... лучше способ сделать это?
Мне нужно что-то, не используя другой API. (Я пишу что-то маленькое и только как дополнение) – user2250333
Java 8 не является «другим API». – bobbel
Ach ... Я думал, что это «джода-время».Но я должен использовать java 7;/ – user2250333