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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 净坛使者 中级黑马   /  2014-1-4 07:09  /  774 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘接受一个数字,打印该数字表示的时间,最大单位到天
例如:
键盘输入6,打印6秒
键盘输入60,打印1分
键盘输入66,打印1分6秒
键盘输入666,打印11分6秒
键盘输入3601,打印1小时1秒
键盘输入86440,打印1天40秒
class Clk
{
        public static void main(String[] args)
        {
                int x = 864401;
                if (x<=60){
                        System.out.println(x%60+"秒");
                }
                else if (60<x&&x<=3600){
                        System.out.println(x/60+"分"+x%60+"秒");
                }
                else if (3600<x&&x<=86400){
                        System.out.println(x/3600+"时"+(x%3600/60)+"分"+(x%3600/60%60)+"秒");
                }
                else if (86400<x){
                        System.out.println((x/86400)+"天"+(x%86400/3600/24)+"时"+(x%86400%3600%24/60)+"分"+(x%86400%3600%24%60%60)+"秒");
                }
        }
}
怎么做才能去掉0分等不用的数直接输出

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

2 个回复

倒序浏览
你这个程序我看拉下,如果想去掉0将会很麻烦。我给你个程序你参考下,也可能有不足的地方,不懂的问我

代码如下:
import java.util.Scanner;


public class Test {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
        //获取键盘输入的数值
                Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
          //求秒数
          int m=i%60;
          //求分数
          int fen=(i-i%60)/60;
          int hour=0;
          int day=0;
        //分钟超过60分时转换成小时
        if(fen >= 60)
        {
                hour=((i-i%60)/60)/60;
                fen=fen-hour*60;
        }
        //小时超过24小时时转换成天
        if (((i-i%60)/60)/24 >= 24)
       {
                day=(((i-i%60)/60)/60)/24;
                       hour=hour-day*24;
               }
       if(day>0)
       {
               //输出天
               System.out.print(day + "天");
       }
       if(hour>0)
       {
               //输出小时
               System.out.print(hour + "时");
       }
       if(fen>0)
       {
               //输出分钟
               System.out.print(fen + "分");
       }
       if(m>0)
       {
               //输出秒
               System.out.print(m + "秒");
       }
        }

}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
精简之后的代码如下

  1.             int x = 864401;
  2.             System.out.println((x/86400 == 0?"":x/86400+"天")+
  3.                                     (x%86400/3600/24 == 0?"":x%86400/3600/24+"时")+
  4.                                     (x%86400%3600%24/60 == 0?"":x%86400%3600%24/60+"分")+
  5.                                     (x%86400%3600%24%60%60)+"秒");
复制代码

这里使用三目运算符进行判断处理,简化了书写

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

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