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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

非同一般

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 非同一般 初级黑马   /  2014-3-7 16:56  /  1121 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class ZhouChao
{
        public static void main(String[] args)
        {
                int x = 3601;
                int a = 0;
                int b = 0;
                int c = 0;
                int d = 0;
                int e = 0;
                int f = 0;
                int g = 0;
                int h = 0;
                int i = 0;
                if(x>=0&&x<60)
                {
                        System.out.println(x+"秒");
                }
                else if (60<=x&&x<3600)
                {
                        a = (x / 60);
                        b = (x % 60);
                        System.out.println(a+"分钟"+b+"秒");
                }
                else if (3600<=x&&x<86400)
                {
                        c = x / 3600;
                        d = x / 3600 % 3600;
                        e = x % 3600 % 60;
                        System.out.println(c+"小时"+d+"分钟"+e+"秒");
                }
我是一个初学者,我想输入任何数,变成"小时"+"分钟"+"秒,在最后计算分钟时候“d = x / 3600 % 3600;”这行代码是错得,怎么才能准确计算出分钟数!

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 12560zhang 于 2014-3-7 17:41 编辑

运行通过了啊,结果是1小时1分钟1秒, d = x / 3600 % 3600 这行的结果是d=1,怎么会出错呢
建议:eclipse中Project-->clean 一下,然后重新运行
回复 使用道具 举报
import java.util.Scanner;

public class Test4 {

        public static void main(String[] args) {
                int time = getTime();//调用getTime(),将result的值返回给time
                outTime(time);
        }

        private static int getTime() {//获取输入时间
                boolean flag = true;//定义标记flag
                int result = 0;//初始化result的值
                while (flag){//对输入的值进行判断
                        Scanner in = new Scanner(System.in);//声明扫描仪in
                        System.out.println("输入一个大于0的整数:");
                        try{//将输入的值转成整数值
                                result = Integer.parseInt(in.nextLine());
                                if (result < 0) {
                                        throw new Exception("输入的值必须大于等于0");
                                }
                                flag = false;//如果result大于0,则终止循环
                        } catch(Exception e) {//捕获异常,并输入异常信息
                                System.out.println("输入值非法,请输入大于0的整数!");
                        }
                }
                return result;//循环结束,返回result的值
        }

        private static void outTime(int time){//对输入值进行算术运算
                int s = 0, m = 0, h = 0, d = 0;
                if (time < 0){return ;}//小于零终止判断,此处有点多余
                if (time < 60) {
                        s = time;
                } else if (time >= 60 && time < 60*60 ){
                        m = time/60;
                        s = time%60;
                } else if (time >= 60*60 && time < 24*60*60){
                        h = time/(60*60);
                        m = time%(60*60)/60;
                        s = time%(60*60)%60;
                } else {
                        d = time/(24*60*60);
                        h = time%(24*60*60)/(60*60);
                        m = time%(24*60*60)%(60*60)/60;
                        s = time%(24*60*60)%(60*60)%60;
                }
                format(d, h, m, s);//调用format()格式化时间
        }
        //格式化时间
        private static void format(int d, int h, int m, int s) {
                String str = "";
                if (d != 0) {
                        str += d + "天";
                }
                if (h != 0) {
                        str += h + "小时";
                }
                if (m != 0) {
                        str += m + "分钟";
                }
                if (s != 0) {
                        str += s + "秒";
                }
                System.out.println(str);
        }
}

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
class ZhouChao
{
        public static void main(String[] args)
        {
                int x = 3601;
                int a = 0;
                int b = 0;
                int c = 0;
                int d = 0;
                int e = 0;
                int f = 0;
                int g = 0;
                int h = 0;
                int i = 0;
                if(x>=0&&x<60)
                {
                        System.out.println("0小时0分钟"+x+"秒");
                }
                else if (60<=x&&x<3600)
                {
                        a = (x / 60);
                        b = (x % 60);
                        System.out.println("0小时"+a+"分钟"+b+"秒");
                }
                else if (3600<=x&&x<86400)
                {
                        c = x / 3600;
                        d=(x-3600*(x/3600))/60;
                        e = x % 3600 % 60;
                        System.out.println(c+"小时"+d+"分钟"+e+"秒");
                }
                else if(x==86400)
                {
                        System.out.println("0小时0分钟0秒");
                }
         }
}
版主能不能给点分啊 赚分好难啊  有这个时间我都想去看视频了

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
希望能帮到你:
  1. public class Time_Change
  2. {
  3.         public static String getDuration(int durationSeconds)
  4.         {
  5.                 int hours = durationSeconds /(60*60);
  6.                 int leftSeconds = durationSeconds % (60*60);
  7.                 int minutes = leftSeconds / 60;
  8.                 int seconds = leftSeconds % 60;
  9.                
  10.                 StringBuffer sBuffer = new StringBuffer();
  11.                 sBuffer.append(addZeroPrefix(hours));
  12.                 sBuffer.append("小时");
  13.                 sBuffer.append(addZeroPrefix(minutes));
  14.                 sBuffer.append("分钟");
  15.                 sBuffer.append(addZeroPrefix(seconds));
  16.                 sBuffer.append("秒");
  17.                
  18.                 return sBuffer.toString();
  19.         }
  20.        
  21.         public static String addZeroPrefix(int number)
  22.         {
  23.                 if(number < 10)
  24.                         return "0"+number;
  25.                 else
  26.                         return ""+number;
  27.         }
  28.        
  29.         public static void main(String[] args)
  30.         {
  31.                 System.out.println("输入一个要转换时间的数:");
  32.                 Scanner in = new Scanner(System.in);   
  33.                 int m=in.nextInt();
  34.                 System.out.println(getDuration(m));

  35.                 System.out.println(getDuration(72340));
  36.        
  37.         }
  38.        
  39. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

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