黑马程序员技术交流社区

标题: 刚看到一哥们发了这个问题,正好我也没事做,也敲了一下 [打印本页]

作者: wangyu    时间: 2015-4-26 18:13
标题: 刚看到一哥们发了这个问题,正好我也没事做,也敲了一下
/**
* 要求从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒

思路:1.首先从键盘录入数字,然后开始判断他在哪个区间内
        2.如果 time 0-60  那么打印 xx秒
                    60-3600  打印  xx分xx秒
                                3600-86400打印 xx小时xx分 xx秒
                                >86400    打印  xx天 xx小时 xx分xx秒
        3.各自通过除数和取余来判断
        4、为了实现循环输入,需要用while死循环来实现。
*/
import java.util.Scanner;//导包
class  Demo
{
        public static void main(String[] args)
        {
                Scanner sc=new Scanner(System.in);
                /*建立while死循环,实现重复输入的特点*/
                while (true)
                {
                        System.out.println("请输入一个数字:");
                        /*定义变量来接收用户输入的数字*/
                        int time=sc.nextInt();
                        /*定义变量来存储 天  小时  分 秒*/
                        int day,hour,min,sec;
                        /*用if语句判断这个数字在哪个取件,分别进行不同的算法,输出不同的结果*/
                        if (time>=0&&time<60)
                        {
                                System.out.println(time+"秒");
                        }
                        else if (time>=60&&time<3600)
                        {
                                min=time/60;
                                sec=time%60;
                                System.out.println(min+"分"+sec+"秒");
                        }
                        else if (time>=3600&&time<86400)
                        {
                                hour=time/3600;
                                min=time%3600/60;
                                sec=time%3600%60;
                                System.out.println(hour+"小时"+min+"分"+sec+"秒");
                        }
                        else if (time>=86400)
                        {
                                day=time/86400;
                                hour=time%86400/3600;
                                min=time%86400%3600/60;
                                sec=time%86400%3600%60;
                                System.out.println(day+"天"+hour+"小时"+min+"分"+sec+"秒");
                        }
                        else
                        {
                                //如果输入负数的话,那么就打印 出错,然后用continue结束本次循环,进入下次循环
                                System.out.println("您输出的数字有误,请重新输入");
                                continue;
                        }
                }
        }
}


这个问题很简单,从思路到代码都不难,全当是练练手指
作者: Chans_宇    时间: 2015-4-26 19:53
不是要用到Date和Calendar这两个类么……我也不是很会:L
作者: lai19    时间: 2015-4-26 20:27
又是這道題!!!!
作者: wangyu    时间: 2015-4-26 21:25
Chans_宇 发表于 2015-4-26 19:53
不是要用到Date和Calendar这两个类么……我也不是很会

你说的那个我没学 ,我现在只会这些
作者: Chans_宇    时间: 2015-4-27 21:59
wangyu 发表于 2015-4-26 21:25
你说的那个我没学 ,我现在只会这些

好吧……:L
作者: pengcheng0328    时间: 2015-4-27 22:16
先见识见识
作者: lclxjzz    时间: 2015-4-27 22:26
我只是看看的·······
作者: 840800102    时间: 2015-4-27 22:31
涨涨见识。过来猫一眼。
作者: 精湛学术    时间: 2015-4-27 22:31
学习了  
作者: 菜鸟的求学路    时间: 2015-4-27 22:33
day=time/86400;                                 hour=time%86400/3600;                                 min=time%86400%3600/60;                                 sec=time%86400%3600%60;
作者: 菜鸟的求学路    时间: 2015-4-27 22:34
那个代码放外面不是更好吗?
作者: mxdeheima    时间: 2015-4-27 22:39
学习学习
作者: 火云邪神    时间: 2015-4-27 22:45
作为一名菜鸟,允许我膜拜一个
作者: andioid-张先生    时间: 2015-4-27 23:03
恩 ,思路挺好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2