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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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+"秒");
        }
}

26 个回复

倒序浏览
王英明 来自手机 中级黑马 2015-4-26 06:59:11
沙发
收入囊中…!
回复 使用道具 举报
学习了!!!!!
回复 使用道具 举报
留名学习
回复 使用道具 举报
受教了!
回复 使用道具 举报
学习了!
回复 使用道具 举报
qinrh 中级黑马 2015-4-26 16:42:07
7#
比我写的简单好多,lz 优化做得很好
回复 使用道具 举报
厉害~ 感谢分享!学习!
回复 使用道具 举报
学习了!!!
回复 使用道具 举报
  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. }
复制代码

点评

处理了所有异常,而且单位可以到天,所以复杂了点。  发表于 2015-4-27 21:09
你这个怎么跟LZ差别那么大?  发表于 2015-4-27 19:52
回复 使用道具 举报
Cat 中级黑马 2015-4-26 19:59:05
11#
学习一下~
回复 使用道具 举报
MulityRain 来自手机 中级黑马 2015-4-26 20:08:59
12#
这是计时器吗?感觉挺有意思的
回复 使用道具 举报
楼主真的好叼啊,几行代码就给它实现了  绝对是受不了。。。
回复 使用道具 举报
写的很好!
回复 使用道具 举报
留下,等学到了好好研究研究
回复 使用道具 举报
这就自己坐下
回复 使用道具 举报

学习了!
回复 使用道具 举报
学习了,不错
回复 使用道具 举报
收了!  晚上再练
回复 使用道具 举报
学习学习
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马