A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;  
    }     
}  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马