- package com.itheima;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- /**
- * 3、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
- *
- * 键盘输入6,打印6秒; 键盘输入60,打印1分; 键盘输入66,打印1分6秒;
- * 键盘输入666,打印11分6秒; 键盘输入3601,打印1小时1秒
- *
- * @author HanTianlei
- *
- */
- public class Test3 {
- public static void main(String[] args) {
- // 提示输入一个数字
- System.out.println("请输入一个数字:");
- // 带缓冲的键盘读取流定义
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- long num = 0;// 用来记录输入的数字
- String inputstr = null;// 用来记录从键盘读取来的字符串形式的数据
- try {
- // 从键盘读取数据
- inputstr = bf.readLine();
- } catch (IOException e) {
- // IO出错抛出一个RuntimeException,中断程序执行
- throw new RuntimeException("IO异常");
- }
- // 如果输入的数据转换失败,则给出相应提示
- try {
- num = Long.parseLong(inputstr);
- } catch (NumberFormatException e) {
- System.out.println("数字格式错误");
- }
- // 调用打印方法
- print(num);
- }
- // 打印方法实现,需传入键盘读取来的秒数
- public static void print(long num) {
- // 定义三个整型常量,分别表示 分,小时,天所包含的秒数
- final int MINUTE = 60;
- final int HOUR = 60 * 60;
- final int DAY = 60 * 60 * 24;
- // 判断输入的数字是否大于零
- if (num < 0) {
- System.out.println("请输入一个大于零的数!");
- return;
- }
- // 求出天数,小时数,分钟数,秒数
- long day = num / DAY;
- long hour = (num % DAY) / HOUR;
- long minute = (num % HOUR) / MINUTE;
- long second = num % MINUTE;
- // 如果值为0,则不输出
- if (day != 0)
- System.out.print(day + "天");
- if (hour != 0)
- System.out.print(hour + "小时");
- if (minute != 0)
- System.out.print(minute + "分");
- if (second != 0)
- System.out.print(second + "秒");
- System.out.println();
- }
- }
复制代码 |