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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒*/

本人是通过判断数字的大小实现程序的,但是自己觉得该程序太繁琐,求最简单代码

6 个回复

倒序浏览

  1. import java.util.Scanner;
  2. /*1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
  3. 键盘输入6,打印6秒;
  4. 键盘输入60,打印1分;
  5. 键盘输入66,打印1分6秒;
  6. 键盘输入666,打印11分6秒;
  7. 键盘输入3601,打印1小时1秒*/
  8. public class Test {
  9.         public static void main(String[] args){
  10.                 Scanner s = new Scanner(System.in);
  11.                 demo(s.nextInt());
  12.                 s.close();
  13.         }
  14.         public static void demo(int time){
  15.                 int day = 60*60*24;        //天
  16.                 int hour = 60*60;        //时
  17.                 int minute = 60;        //分
  18.                 int d=0,h=0,m=0,s=0;//用于接收 天,时,分,秒
  19.                 if(time>=day){        //判断输入的时间如果大于一天的时间
  20.                         int temp = time%day;        //取出时间的零头
  21.                         d = (time-temp)/day;        //天数就等于时间减去零头除以天,这样就能得出多少天
  22.                         time = temp;        //因为天已经得出来了,就剩时间零头了,然后就把零头给time,下面接着处理
  23.                 }
  24.                 if(time>=hour){        //这里是处理时
  25.                         int temp = time%hour;       
  26.                         h = (time-temp)/hour;       
  27.                         time = temp;
  28.                 }
  29.                 if(time>=minute){        //这里是处理分
  30.                         int temp = time%minute;       
  31.                         m = (time-temp)/minute;       
  32.                         time = temp;
  33.                 }
  34.                 if(time<60&&time>0)        //小于60秒,就说明只剩下秒了
  35.                         s = time;
  36.                 if(d>0)        //如果天大于0就输出,否则就不输出
  37.                         System.out.print(d+"天");
  38.                 if(h>0)//时
  39.                         System.out.print(h+"时");
  40.                 if(m>0)//分
  41.                         System.out.print(m+"分");
  42.                 if(s>0)//秒
  43.                         System.out.print(s+"秒");
  44.         }

  45. }
复制代码


回复 使用道具 举报

题目是不是太简单了,输入的的数字代表什么时间呢,是秒还是微秒
回复 使用道具 举报
qq331335030 发表于 2015-11-23 14:35
题目是不是太简单了,输入的的数字代表什么时间呢,是秒还是微秒

题目不是说了嘛   输入6就显示6秒    输入的数字肯定是秒啊
回复 使用道具 举报
不好意识,题目没看完,呵呵
这好像是一个面试题吧
回复 使用道具 举报
qq331335030 发表于 2015-11-23 15:10
不好意识,题目没看完,呵呵
这好像是一个面试题吧

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int x = sc.nextInt();
                int d = x/24/60/60;
                int h = (x-d*24*60*60)/(60*60);
                int m = (x-d*24*60*60-h*60*60)/60;
                int s = x%60;
                if (d > 0 ) {
                        System.out.println(d+"天"+h+"小时"+m+"分"+s+"秒");
                }else if(h>0){
                        System.out.println(h+"小时"+m+"分"+s+"秒");
                }else if (m>0) {
                        System.out.println(m+"分"+s+"秒");
                }else{
                        System.out.println(s+"秒");
                }
               
        }
回复 使用道具 举报
刚才那个有点问题,这个应该没问题了,我也是菜鸟哦,调试了好几次的,呵呵
public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int x = sc.nextInt();
                int d = x/24/60/60;
                int h = (x-d*24*60*60)/(60*60);
                int m = (x-d*24*60*60-h*60*60)/60;
                int s = x%60;
                if (d > 0 )
                        System.out.print(d+"天");
                if(h>0)
                        System.out.print(h+"小时");
                if (m>0)
                        System.out.print(m+"分");
                if (s>0)
                        System.out.print(s+"秒");
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马