本帖最后由 烟海 于 2014-9-2 00:32 编辑
需求:
从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如: 键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
需求很简单,代码实现的话,其实也没太复杂,不过思路分析,以及思考的过程,还是有些麻烦的,
分享一个自己写的,认为可能最简洁的代码了,贴出来探讨下,看看有无更简洁的方法。这里考虑到了999天的情况,更多的就没考虑了。
- import java.util.*;
- public class Test3 {
- public static void main(String[] args) {
- int time = new Scanner(System.in).nextInt();
- printTime(time);
- }
- public static void printTime(int time){
- String[] str = {"时","分","秒"};
- for (int j = 0 ,i = 3600; time>0; i/=60,j++) {
- if(time>=86400){
- System.out.print(time/86400+"天");
- time = time%24;
- }
- if(time>=i){
- if(time==0){}
- else{
- System.out.print(time/i+str[j]);
- }
- time = time%i;
- }
- }
- }
- }
复制代码
|