Я пишу программу, в которой использую обратный отсчет до определенной даты и времени, и в результате получаю обратный отсчет в формате часов, минут, секунд , но я также хочу показать количество дней
получаю это:
Time remaining: 630 hours, 57 minutes, 25 seconds
нужно это:
Time remaining: 26 days, 11 hours, 57 minutes, 25 seconds
Код активности: -
public void onTick(long millisUntilFinished) {
String result = ToReadableString(new org.joda.time.Period(millisUntilFinished));
countdown.setText("Time remaining: " + result);
}
private String ToReadableString(Period period) {
int days = period.get(DurationFieldType.days());
int hours = period.get(DurationFieldType.hours());
int minutes = period.getMinutes();
int seconds = period.getSeconds();
StringBuilder sb = new StringBuilder();
if (days > 0) {
sb.append(days);
if (days == 1) {
sb.append(" day, ");
} else {
sb.append(" days, ");
}
}
if (hours > 0) {
sb.append(hours);
if (hours == 1) {
sb.append(" hour, ");
} else {
sb.append(" hours, ");
}
}
if (minutes > 0) {
sb.append(minutes);
if (minutes == 1) {
sb.append(" minute, ");
} else {
sb.append(" minutes, ");
}
}
if (seconds > 0) {
sb.append(seconds);
if (seconds == 1) {
sb.append(" second, ");
} else {
sb.append(" seconds, ");
}
}
String result = sb.toString().trim();
if (result.endsWith(","))
result = result.substring(0, result.length() - 1);
return result;
}
}