package tempDemo;
import java.util.Scanner;
public class Timer {
/**
* 需求:
* 从键盘接受一个数字,打印该数字表示的时间,最大单位到天
* 例如: 键盘输入6,打印6秒 键盘输入60, 打印1分 键盘输入66,打印1分6秒
* 键盘输入666,打印11分6秒 键盘输入3601,打印1小时1秒 键盘输入86440,打印1天40秒
*
* 思路:
* 1,定义Scanner对象sc用于接收数字n,类型为Integer类型,调用.toString()
* 2,定义方法getTime(n)。
* 定义时间区间进行判断(单位:秒)
* |--分60
* |--时60*60
* |--天60*60*24
* 3,健壮性判断,可以考虑放在某个控件事件内来做判断,这里仅模拟。
*
* 步骤:
* 1,Scanner
* 2,Integer
* 3,String getTime(n), if(){}else(){}, return String XX;
*/
@SuppressWarnings("resource")
public static void main(String[] args) {
System.out.println("请输入一个数字:");
Scanner sc = new Scanner(System.in);
Integer n = sc.nextInt();
if(n < 0){//健壮性判断
System.out.println("您是都敏俊XI?");
return;
}
System.out.println(getTime(n));
}
public static String getTime(Integer n) {
int MIN = 60;//分60
int HOUR = MIN * 60;//时3600
int DAY = HOUR * 24;//天86400
String result = null;
for (;;) {//for(内存优化机制)
if (n < MIN ) { //秒
result = n.toString() + "秒";
break;
} else if (n < HOUR ) {//分..秒
Integer min = n / 60;
Integer sec = n % 60;
if (sec == 0) {
result = min.toString() + "分";
} else {
result = min.toString() + "分" + sec.toString() + "秒";
}
break;
} else if(n < DAY ){//时..秒
Integer hour = n / HOUR;
Integer sec = n % HOUR;
result = hour.toString() + "小时" + sec.toString() + "秒";
break;
} else {//天..秒
Integer day = n / DAY;
Integer sec = n % DAY;
result = day.toString() + "天" + sec.toString() + "秒";
break;
}
}
return result;
}
} |
|