黑马程序员技术交流社区

标题: 一道黑马基础测试题,练手题,分享给大家 [打印本页]

作者: 莫里亚蒂    时间: 2015-4-26 06:12
标题: 一道黑马基础测试题,练手题,分享给大家
import java.util.Scanner;

/**
        要求从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
                分析:相当于数字对应时间,最大单位到天的话,是24小时*60*60=86400秒
                而且打印出来要求是**小时**分钟**秒的结构
               
                步骤:(1)键盘输入数字语句Scanner,打印数字为x
                           (2)定义y,z,m,n,将x取整60,得出的整数商为m,余数为n
                           (3)将整数商m继续取整60,得出整数商为y,其余数为z
                           (4)n为输入该数对应秒的值,z为输入该数对应的分钟的值,y为输入该数小时的值
                           (5)打印出:y小时z分钟n秒
*/
public class Test1
{
        public static void main(String[] args)
        {
               
                jiSuan();
               
               
        }
        public static void jiSuan()
        {
                Scanner s = new Scanner(System.in);
                System.out.println("数字");
                int x = s.nextInt();
                int m=x/60;
                int n=x%60;
                int y=m/60;
                int z=m%60;
                System.out.println(y+"小时"+z+"分钟"+n+"秒");
        }
}


作者: 王英明    时间: 2015-4-26 06:59
收入囊中…!
作者: 13699266500    时间: 2015-4-26 12:05
学习了!!!!!
作者: 谷歌    时间: 2015-4-26 13:41
留名学习
作者: Oscars    时间: 2015-4-26 14:56
受教了!
作者: 殃金咒    时间: 2015-4-26 15:50
学习了!
作者: qinrh    时间: 2015-4-26 16:42
比我写的简单好多,lz 优化做得很好
作者: 大西洋    时间: 2015-4-26 16:51
厉害~ 感谢分享!学习!
作者: nate996    时间: 2015-4-26 16:54
学习了!!!
作者: 小鹏_sJQBO    时间: 2015-4-26 16:56
  1. /*
  2. 1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
  3.         键盘输入6,打印6秒;
  4.         键盘输入60,打印1分;
  5.         键盘输入66,打印1分6秒;
  6.         键盘输入666,打印11分6秒;
  7.         键盘输入3601,打印1小时1秒
  8. */
  9. import java.util.*;
  10. import java.io.*;
  11. class Test1
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 printTime();
  16.         }

  17.         public static void printTime()
  18.         {
  19.                 InputStream in = null;
  20.                 StringBuilder sb = new StringBuilder();
  21.                 try
  22.                 {
  23.                         in = System.in;
  24.                         System.out.println("请输入不小于零的整数后按回车,输入\"over\"结束!");
  25.                         while(true)
  26.                         {
  27.                                 int ch = in.read();
  28.                                 if(ch=='\r')
  29.                                         continue;
  30.                                 if(ch=='\n')
  31.                                 {
  32.                                         String s = sb.toString();//如果遍历到\n,那么说明此行输入完毕,将此行数据存储到字符串s中。
  33.                                         if("over".equals(s))
  34.                                                 break;
  35.                                         try
  36.                                         {
  37.                                                 int value = new Integer(s).intValue();//将字符串转换成int型的值。                                               
  38.                                                 if(value<0)
  39.                                                         System.out.println("你输入了负数,请重新输入!");
  40.                                                 else
  41.                                                         System.out.println(getTime(value));
  42.                                         }
  43.                                         catch (NumberFormatException e1)
  44.                                         {
  45.                                                 System.out.println("你输入的不是数字或者数字太大,请重新输入!");
  46.                                         }

  47.                                         sb.delete(0,sb.length());//转换完一次,就需要将容器清空。如果输入的不符合要求,也要清空,所以在try外边。
  48.                                 }
  49.                                 else
  50.                                         sb.append((char)ch);
  51.                         }
  52.                 }
  53.                 catch (IOException e2)
  54.                 {
  55.                         throw new RuntimeException("获取键盘输入流失败!");
  56.                 }
  57.                 finally
  58.                 {
  59.                         try
  60.                         {
  61.                                 if(in!=null)
  62.                                         in.close();
  63.                         }
  64.                         catch (IOException e3)
  65.                         {
  66.                                 throw new RuntimeException("输入流关闭失败!");
  67.                         }
  68.                 }
  69.         }

  70.         /**
  71.         该方法的作用是:将一个int整数数转化为时间长度,最大单位为天,最小单位为秒。
  72.         */
  73.         public static String getTime(int time)
  74.         {
  75.                 if(time==0)
  76.                         return "0秒";
  77.                 if(time<0)
  78.                         throw new RuntimeException("值是负数!");
  79.                 int minute = time / 60;
  80.                 int second = time % 60;

  81.                 int hour = minute / 60;
  82.                 minute = minute % 60;

  83.                 int day = hour / 24;
  84.                 hour = hour % 24;

  85.                 StringBuilder sb = new StringBuilder();

  86.                 if(day!=0)
  87.                         sb.append(day+"天");
  88.                 if(hour!=0)
  89.                         sb.append(hour+"小时");
  90.                 if(minute!=0)
  91.                         sb.append(minute+"分");
  92.                 if(second!=0)
  93.                         sb.append(second+"秒");

  94.                 return sb.toString();
  95.         }
  96. }
复制代码

作者: Cat    时间: 2015-4-26 19:59
学习一下~
作者: MulityRain    时间: 2015-4-26 20:08
这是计时器吗?感觉挺有意思的
作者: 米江波    时间: 2015-4-26 20:38
楼主真的好叼啊,几行代码就给它实现了  绝对是受不了。。。
作者: 爱如kongcheng    时间: 2015-4-26 22:57
写的很好!
作者: 龙腾浩少    时间: 2015-4-26 23:10
留下,等学到了好好研究研究
作者: xuelanghu120    时间: 2015-4-27 00:03
这就自己坐下
作者: 铃铃铃铃铃锋    时间: 2015-4-27 13:09

学习了!
作者: zhangjnia    时间: 2015-4-27 14:04
学习了,不错
作者: 只吃饭不洗碗    时间: 2015-4-27 14:18
收了!  晚上再练
作者: 陈明佳    时间: 2015-4-27 14:40
学习学习
作者: xizhenqing    时间: 2015-4-27 15:45
学习一下
作者: fc734228945    时间: 2015-4-27 16:05
厉害啊。。。
作者: 吕晓阳    时间: 2015-4-27 17:12
写的很好,就是应该插入代码,而不是复制
作者: Zack    时间: 2015-4-27 17:25
厉害厉害!
作者: Taekwon-boy    时间: 2015-4-27 18:44
不错。。。




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