【发布时间】:2013-10-28 13:51:43
【问题描述】:
快速提问。
是否有更智能/更时尚的方式将分钟转换为更易读的格式,只显示最重要的数字?
我正在使用 Android Studio 的 Java。
public String MinutesToHumanReadable(Long minutes) {
...
}
即
2 mins = "2 mins"
45 mins = "45 mins"
60 mins = ">1 hr"
85 mins = ">1 hr"
120 mins = ">2 hrs"
200 mins = ">3 hrs"
1500 mins = ">1 day"
我的代码非常繁琐、草率,而且有些不可读。
public String MinutesToHumanReadable(long minutes) {
String sReturn = "";
if (minutes > 515600) {
sReturn = "> 1 yr";
} else if (minutes > 43200) {
sReturn = (minutes / 43200) + " mths";
} else if (minutes > 10080) {
sReturn = (minutes / 10080) + " wks";
} else if (minutes > 1440) {
sReturn = (minutes / 1440) + " days";
} else if (minutes > 60) {
sReturn = (minutes / 60) + " hrs";
} else {
//<60
sReturn = minutes + " mins";
}
return sReturn;
}
非常感谢, J
【问题讨论】:
-
为了这个需要,我会使用一些
if/else if/else语句。 -
根据您需要多少粒度,使用条件语句最有意义。
-
也许是一个不错的库:ocpsoft.org/prettytime
-
android.text.format.DateUtils带有各种相对时间格式化助手,例如getRelativeTimeSpanString()。该实现在结构上与您的并没有太大不同:github.com/android/platform_frameworks_base/blob/master/core/… -
解决了,如果你之前看过答案,我的代码有一点错误,所以“刷新”它并享受:)
标签: java android date formatting android-studio