Любые предложения о том, как преобразовать формат ISO 8601 PnYnMnDTnHnMnS
(например: P1W, P5D, P3D) в количество дней?
Я пытаюсь настроить текст кнопки таким образом, чтобы дни бесплатной пробной версии отображались для пользователя.
Google предоставляет информацию для выставления счетов в формате продолжительности ISO 8601 через ключ "freeTrialPeriod", но он мне нужен в цифрах, которые пользователь действительно может прочитать.
Текущий минимальный уровень API приложения - 18, поэтому классы Duration и Period из Java 8 не помогут, поскольку они предназначены для API, равных или превышающих 26.
Я выбрал следующий метод в качестве обходного пути, но он не выглядит лучшим решением:
private String getTrialPeriodMessage() {
String period = "";
try {
period = subsInfoObjects.get(SUBS_PRODUCT_ID).getString("freeTrialPeriod");
} catch (Exception e) {
e.printStackTrace();
}
switch (period) {
case "P1W":
period = "7";
break;
case "P2W":
period = "14";
break;
case "P3W":
period = "21";
break;
case "P4W":
period = "28";
break;
case "P7D":
period = "7";
break;
case "P6D":
period = "6";
break;
case "P5D":
period = "5";
break;
case "P4D":
period = "4";
break;
case "P3D":
period = "3";
break;
case "P2D":
period = "2";
break;
case "P1D":
period = "1";
}
return getString(R.string.continue_with_free_trial, period);
}
Есть предложения по улучшению?
Спасибо!