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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

/**
* 第1题:从键盘接受一个数字,打印该数字表示的时间。最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
* @author 刘志强
*/
//方法一:

import java.io.*;
import java.util.*;

public class Test1 {
        public static void main(String args[]) throws IOException {
                Scanner time = new Scanner(System.in);
                System.out.println("请输入一个整数!");
                int t, second, mm, hour, day;
                t = time.nextInt();
                if(t<0){
                        System.out.println("输入不正确,请重新输入!");
                        System.exit(0);
                }
                if (t >= 3600 * 24) // 判断天数
                {
                        day = t / (3600 * 24);
                        t = t - day * (3600 * 24);
                        System.out.print(day + "天");
                }
                if (3600 * 24 > t && t > 3600) // 判断小时
                {
                        hour = t / 3600;
                        t = t - hour * 3600;
                        System.out.print(hour + "小时");

                }
                if (t < 3600 && t > 60) // 判断分钟3
                {
                        mm = t / 60;
                        t = t - mm * 60;
                        System.out.print(mm + "分钟");
                }
                if (60 > t && t > 0) // 判断秒
                {
                        second = t;
                        System.out.print(second + "秒");
                }
                time.close();
        }


}


package com.itheima;
/**
* 第1题:从键盘接受一个数字,打印该数字表示的时间。最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
* @author 刘志强
*/
//方法二:
import java.util.Scanner;

public class Test1_2 {

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个数!");
                long a = sc.nextInt();
                long m=60,h=3600,d=3600*24;
                if(a<0){
                        System.out.println("输入错误,请重新输入!");
                        System.exit(0);
                }
                if(a<m){
                        System.out.println(a+"秒");
                }else if(a<h){
                        System.out.println(a/m+"分钟"+a%m+"秒");
                }else if(a<d){ if(a%h>m){
                        System.out.println(a/h+"小时"+a%h/m+"分钟"+a%h%m+"秒");
                }else{
                        System.out.println(a/h+"小时"+a%h+"秒");
                }
                }else if(a%d>3600){
                        System.out.println(a/d+"天"+a%d/h+"小时"+a%d%h/m+"分钟"+a%d%h%m+"秒");
                }else if(a%d>60){
                        System.out.println(a/d+"天"+a%d%h/m+"分钟"+a%d%h%m+"秒");
                }else {
                        System.out.println(a/d+"天"+a%h+"秒");
                }
                sc.close();
        }

}

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

8 个回复

倒序浏览
不错,不错看看
回复 使用道具 举报
第二种方法比较好,因为第一种if后面没有else,如果没有else,那么程序是会往下走的,这样就会浪费程序运算的时间了
回复 使用道具 举报
谢了!!
回复 使用道具 举报
不是java强大,是人的思想以及解决问题的思路强大
只要有解决问题的思路,哪种语言都能解决问题。
java只是实现以及解决繁杂问题的一种计算机语言。
回复 使用道具 举报
本帖最后由 王世虎 于 2014-11-14 02:10 编辑

小弟的代码奉上:
import java.util.Scanner;
class TimeDemo
{ public static void TimeDemo(int x)
  {              if (x>0)
        {          if ((x/60)>0)  //x 代表秒数
                {     int y = x/60; //y代表分
                        if ((y/60)>0)
                        { int z = (y/60);  //z代表时
                                if ((z/24)>0)
                                {  System.out.println((z/24)+"天"+(z%24)+"小时"+(y%60)+"分"+(x%60)+"秒"); }
                                else
                                        System.out.println(z+"小时"+(y%60)+"分"+(x%60)+"秒");  }
                        else
                                System.out.println(y+"分"+(x%60)+"秒"); }
                else
                        System.out.println(x+"秒");
        }
        else        
           System.out.println("请输入正确值");
        }
       public static void main(String[] args)
                {
                        int i;
                        Scanner input = new Scanner(System.in);
                        i = input.nextInt();
                        TimeDemo(i);                        
                }
}
回复 使用道具 举报
cbb 中级黑马 2014-11-14 10:17:29
7#
一个人有一种构思!坑爹的,前几星期我去面试,面试官说我什么都不懂…给答案写的都不一样……我果断走了……
回复 使用道具 举报
学习了,这题我也做过,用的是第二种思路,但是没你写的那么简练,看来还得多学习,我用的是BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
回复 使用道具 举报
zhy_163 中级黑马 2014-11-14 14:28:04
9#
涨见识啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马