【发布时间】:2013-10-06 04:59:11
【问题描述】:
我正在尝试在我的一个应用程序中显示以下消息以显示等待时间
2 小时 3 分钟 4 秒
1小时2秒
如您所见,可能会有很多变化,我正在努力完成这项工作。以下代码运行良好,给定的秒数给出了非零小时、分钟和秒,但如果我必须处理只有小时和秒要显示而没有分钟要显示的情况,这将完成。
也不知道在哪里添加那些字符串'and'和逗号。
我相信应该已经有一个我可能不知道的解决方案。
public class HumanizedWaitDisplay {
public static void main(String[] args) {
int noOfSecToWait = 60*60*2 + 30;
System.out.println("Waiting for " + getHumanizedTime(noOfSecToWait));
}
private static String getHumanizedTime(int seconds) {
String out ="";
int hr = seconds/(60*60);
seconds = seconds%(60*60);
int min = seconds/(60);
seconds = seconds%(60);
if(hr>0) {
out += hr + " hour" +(hr == 1 ? " ":"s ");
}
if(min > 0){
out += min + " min" +(min == 1 ? " ":"s ");
}
if(seconds > 0){
out += seconds + " s";
}
return out;
}
}
如果你遇到过这样的事情,请告诉我。
【问题讨论】:
-
您的代码似乎运行良好。有什么问题?在哪些输入上?
-
看看这个answer!
-
@Maroun,我无法确定“和”和逗号的位置。如果只有小时可以显示并且分钟和秒为零......有很多情况。希望你能得到照片..
-
@R.J 在您提供的链接上完美回答。谢谢。曾尝试搜索SO,但不清楚关键字。
-
@mtk - 没有问题!我也发生过很多次。