一个小问题。
有没有更聪明/更时尚的方法将分钟转换为更可读的格式,只显示最高有效位?
我使用的是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
4条答案
按热度按时间db2dz4w81#
我将使用一些虚拟的
if/else if/else
语句:示例输出
3bygqnnd2#
嗯,这是可能的,我想通了,我为此感到自豪!:)注意,你可以很容易地添加任何其他值,而不需要改变方法本身,只需要改变这两个数组中的值。例如,如果“年”对你来说不够,你可以添加“十年”和“世纪”...
此代码还在末尾添加“s”字母,如果有多个输出值。
样品输入:
输出为:
3bygqnnd3#
也许这能帮你
rdrgkggo4#
约书亚·品特和阿诺德·德诺耶尔改进了答案。
并将其添加到res/values/strings.xml文件中
通过这种方式,它将根据数量显示单数或复数,并支持值 大于一天。例如:2天8小时23分钟或1天2小时1分钟