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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.Scanner;

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

public class Test02 {
        public static void main(String[] args){
                Scanner input = new Scanner(System.in);//这是从控制台获取键盘输入功能
                System.out.print("请输入数字:");
                int time = input.nextInt();//接收键盘获取的数
                int sh = 0;//定义变量sh,求商
                int yu = 0;//定义变量yu,求余数
                //判断输入数值所属时间的区间范围
               
                if (time>0 && time<60){
                        System.out.println("时间为:"+time+"秒");       
               
                        }else if(time>=60 && time<3600){
                                sh = time/60;
                                yu = time%60;
                                System.out.println("时间为:"+sh+"分"+yu+"秒");
                               
                        }else if(time>=3600 && time<86400){
                                sh = time/3600;
                                yu = time%3600;
                                System.out.println("时间为:"+sh+"小时"+yu+"秒");
                       
                }else if(time>=86400){
                        sh = time/86400;
                        yu = time%86400;
                        System.out.println("时间为:"+sh+"天"+yu+"秒");
                }
                //其他不合法的数
                else{
                        System.out.println("该数据不合法,请重新运行");
                }
        }       
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

6 个回复

倒序浏览
有问题的 ,   当你的时间 大于一天 几个小时的时候,你的输出 将是你不想看到的 结果,else if(time>=86400){
                        sh = time/86400;
                        yu = time%86400;
                        System.out.println("时间为:"+sh+"天"+yu+"秒");

你的这段代码 只能看出来你的天数加上秒数。这时不正常的,另外我认为你的设想的并不好。建议你写成
先判断时间是否大于 一天的,  然后在判断是否大于一小时,在判断是否大于一分钟,然后再计算是多少秒。也就是嵌套循环的思想。

                if (time>=86400) {
                        if (time>=3600) {
                                if (time>=60) {
                                }else {
                               
                                }
                        }else {
                       
                        }
                }else {
               
                }  

大概就是这样的一种思想结构吧, 具体的代码我相信你可以写出来。
回复 使用道具 举报
是一道面试题吧
回复 使用道具 举报
一小时十分钟 输出 1小时600秒?这~~~
回复 使用道具 举报
import java.util.Scanner;

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

public class bb {
        public static void main(String[] args){
                Scanner input = new Scanner(System.in);//这是从控制台获取键盘输入功能
                System.out.print("请输入数字:");
                int time = input.nextInt();//接收键盘获取的数
                int sh = 0;//定义变量sh,求商
                int yu = 0;
                int shi=0;
                int fen=0;//定义变量yu,求余数
                //判断输入数值所属时间的区间范围
               
                if (time>0 && time<60){
                        System.out.println("时间为:"+time+"秒");        
               
                        }else if(time>=60 && time<3600){
                                sh = time/60;
                                yu = time%60;
                                System.out.println("时间为:"+sh+"分"+yu+"秒");
                                
                        }else if(time>=3600 && time<86400){
                            sh = time/3600;//这得出的是小时数;
                            fen=time%3600/60;//这是得到分数
                            yu = time%3600%60;//这是得到秒数
                            System.out.println("时间为:"+sh+"小时"+yu+"秒");
                    
            }else if(time>=86400){
                    sh = time/86400;
                    shi = time%86400/3600;
                     fen=time%86400%3600/60;
                     yu=time%86400%3600%60;
                    System.out.println("时间为:"+sh+"天"+shi+"时"+fen+"分"+yu+"秒");
            }
                //其他不合法的数
                else{
                        System.out.println("该数据不合法,请重新运行");
                }
        }        
}
这样子就可以了
回复 使用道具 举报
屋檐下的期待 发表于 2014-5-26 22:03
有问题的 ,   当你的时间 大于一天 几个小时的时候,你的输出 将是你不想看到的 结果,else if(time>=8640 ...

我是初学者,这是测试题,因为要求打印的后面全部是到秒的。我也怕麻烦,没有再判断秒是否大于60,大致上应该没有什么问题吧?
回复 使用道具 举报
这是我的基础测试题呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马