黑马程序员技术交流社区

标题: * 1、 从键盘接受一个数字,打印该数字表示的时间,请指教。。。。 [打印本页]

作者: mars314    时间: 2015-9-23 20:11
标题: * 1、 从键盘接受一个数字,打印该数字表示的时间,请指教。。。。
package com.itheima;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* 1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:

* 键盘输入6,打印6秒;

* 键盘输入60,打印1分;

* 键盘输入66,打印1分6秒;

* 键盘输入666,打印11分6秒;

* 键盘输入3601,打印1小时1秒
* @author mars
*/
public class Test1
{

        public static void main(String[] args)
        {
                //提示输入数字
                System.out.println("请输入一个数字:");
               
                //读取键盘
                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
       
                String str = null;
                try {
                                //读取一行
                                while((str=bufr.readLine()) != null)
                                {
                                        //是否为数字
                                        if(isInt(str))
                                        {
                                                        int value = Integer.parseInt(str);//字符串转为整数
                                                        if(value==0)
                                                                System.out.println("0秒");
                                                        else
                                                                MyTimePrint(value);                                                                       
                                        }
                                }
                }
                catch (NumberFormatException e)
                {                       
                        e.printStackTrace();
                }
                catch (IOException e)
                {       
                        e.printStackTrace();
                }               
        }

        //判断是否为数字符串
        public static  boolean isInt(String str)
        {
                //字符串变为字符数组进行判断
                char[] arr = str.toCharArray();
               
                for (int x=0; x<arr.length; x++ )
                {
                        if((arr[x]>='0') && (arr[x]<='9'))
                        {}
                        else
                        {       
                                System.out.println("输入格式有误,请重新输入:");
                                return false;       
                        }
                }
               
                return true;
        }
       
        //输出天时分秒
        public static void MyTimePrint(int i)
        {       
                        int dd = i/24/60/60; //天
                        int hh = (i-dd*24*60*60)/60/60;//时
                        int mm = (i-dd*24*60*60-hh*60*60)/60;//分
                        int ss = i-dd*24*60*60-hh*60*60-mm*60;//秒
                        if(dd != 0)
                                System.out.print(dd+"天");
                        if(hh != 0)
                                System.out.print(hh+"时");
                        if(mm != 0)
                                System.out.print(mm+"分");
                        if(ss != 0)
                                System.out.print(ss+"秒");
                        System.out.println();
        }
       
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2