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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一念執著

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒

7 个回复

倒序浏览
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;        /**
        *第二题:从键盘接受一个数字,打印该数字表示的时间,最大单位到天
        *例如:
        *键盘输入6,打印6秒
        *键盘输入60,打印1分
        *键盘输入66,打印1分6秒
        *键盘输入666,打印11分6秒
        *键盘输入3601,打印1小时1秒
        */


public class Test2
{
        public static void main(String[] args) throws IOException {
                 Scanner sss = new Scanner(System.in);  
                 System.out.print("请输入秒数::");  
                 int mun ,second,minute,hour,day,n;  
                 mun = sss.nextInt();  
             System.out.print("键盘输入"+mun+".......打印:");  


                if(mun >0);
                           if(3601>mun && mun>=3600)  //判断小时  
                                                        {  
                            hour = mun/3600;  
                            mun = mun -hour*3600;  
                            System.out.print(hour+"时间");  
                                                        }  

                          if(3600>mun && mun>=60)   //判断分钟数  
                                                        {  
                           minute = mun/60;  
                            mun = mun -minute*60;  
                            System.out.print(minute+"分钟");
                                                        }  

                           if(60>mun && mun>0)   //判断秒  
                           {  
                           second = mun;  

                            System.out.print(second+"秒");  
                                                        }  
                           else;
                                                        {
                                                         System.out.print(" ");  
                                }
                }
}


以上代码是对的吗?
回复 使用道具 举报

  1.                 if(mun >0);
  2.                            if(mun>=3600)  //判断小时  
  3.                                                         {  
  4.                             hour = mun/3600;  
  5.                             mun = mun -hour*3600;  
  6.                             System.out.print(hour+"时间");  
  7.                                                         }  
  8. 你那个判断小时那里有问题
复制代码
回复 使用道具 举报
本帖最后由 fantacyleo 于 2014-7-9 14:13 编辑
一念執著 发表于 2014-7-9 12:28
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;

貌似bug不少。。。比如if(mun>0)后面少了大括号。。。代码也可以再简洁一些。这是我的写法:
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.util.Scanner;        
  7. /**
  8. *第二题:从键盘接受一个数字,打印该数字表示的时间,最大单位到天
  9. *例如:
  10. *键盘输入6,打印6秒
  11. *键盘输入60,打印1分
  12. *键盘输入66,打印1分6秒
  13. *键盘输入666,打印11分6秒
  14. *键盘输入3601,打印1小时1秒
  15. */


  16. public class SecondToTime
  17. {
  18.     // 定义一些常量,单位是秒
  19.     public static final int DAY = 86400;
  20.     public static final int HOUR = 3600;
  21.     public static final int MINUTE = 60;

  22.     public static void main(String[] args) throws IOException {
  23.         Scanner sss = new Scanner(System.in);  
  24.         System.out.print("请输入秒数: ");  
  25.         int num, seconds, minutes, hours, days;  
  26.         num = sss.nextInt();  
  27.         System.out.print("键盘输入"+num+".......打印:");  

  28.         if(num > 0)
  29.         {
  30.             // 直接计算相应的天、时、分、秒。不足1分钟的,minutes就等于0;不足1小时的,hours就等于0
  31.             // 不足1天的,days就等于0
  32.             days = num / DAY;
  33.             hours = (num % DAY) / HOUR;
  34.             minutes = (num % HOUR) / MINUTE;
  35.             seconds = num % MINUTE;

  36.             String result;
  37.             // 结果字符串。等于0的部分就不打印
  38.             result = (days > 0 ? String.valueOf(days) + "天" : "") +
  39.                 (hours > 0 ? String.valueOf(hours) + "小时" : "") +
  40.                 (minutes > 0 ? String.valueOf(minutes) + "分" : "") +
  41.                 (seconds > 0 ? String.valueOf(seconds) + "秒" : "");

  42.             System.out.println(result);
  43.             
  44.         }
  45.         else if (num == 0)
  46.             System.out.println("0秒");
  47.         else
  48.         {
  49.               System.out.println();
  50.               System.out.println("你输入了一个负数");  
  51.         }
  52.     }
  53. }

复制代码
回复 使用道具 举报
跟我的题一样哈
回复 使用道具 举报
本帖最后由 xingui66 于 2015-7-31 11:32 编辑

import java.math.BigInteger;
/*声明啊,看到别人的代码,我仿造的,,可以吗?我是菜鸟,刚刚学*/
public class exam3 {

        public static void main(String[] args) {
                BigInteger result=new BigInteger("1");
                int count=0;
                for(int i=1;i<1001;i++){
                        result=result.multiply(new BigInteger(i+""));////循环相乘,得出结果。
                }
                String str=result.toString();
                for(int i=0;i<str.length();i++){
                        if(str.charAt(i)=='0'){
                                count++;
                        }
                }
                System.out.println(count);
        }

}
回复 使用道具 举报
一念執著 发表于 2014-7-9 12:28
**** 作者被禁止或删除 内容自动屏蔽 ****

不用抛异常
回复 使用道具 举报
赶紧把以下代码复制到main方法中测试,

Scanner sc = new Scanner(System.in);
                int num = sc.nextInt();
                if(num < 60 && num>=0){                       
                        System.out.println(num+"秒");
                }else if ((num == 60 )){                       
                        System.out.println(num/60+"分");
                }else if(num>60 && num<3600){
                        System.out.println(num/60+"分"+num%60+"秒");
                }else if(num == 3600){
                        System.out.println(num/60/60+"小时");
                }else if(num>3600 && num<86400){
                        System.out.println(num/60/60+"小时"+num/60%60+"分"+num%60+"秒");
                }else if(num==86400){
                        System.out.println(num/24/60/60+"天");
                }else if(num >86400){
                        System.out.println(num/24/60/60+"天"+ num/60/60%24+"小时"+num/60%60+"分"+num%60+"秒");

                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马