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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.Scanner;

public class Text1 {
        /**
         * 1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如
         *键盘输入6,打印6秒;
         *键盘输入60,打印1分;
         *键盘输入66,打印1分6秒;
         *键盘输入666,打印11分6秒;
         *键盘输入3601,打印1小时1秒
         * @author XXX
         *
         * 思路:创建、Scanner对象,从键盘接收数据。
         * 把键盘接收的数据值根据不懂的取值范围调用不同层次的方法。
         * */
        public static void main(String[] args) {
                printDemo();
               
        }
        public static void printDemo(){
                Scanner sn = new Scanner(System.in);//创建一个接收一个键盘录入的对象
                System.out.println("请输入你想输入的自然数:");
                int time = sn.nextInt();//接收键盘录入time
                sn.close();//关闭键盘录入资源
               
                if(time>=0 && time<60){//根据time的取值范围确定调用的方法。
                        printSecond(time);
                }else if(time>=60 && time<3600){
                        printMinute(time);
                }else if(time>=3600 && time<3600*24){
                        printHour(time);
                }else if(time>=3600*24){
                        printDay(time);
                }else{
                        System.out.println("您输入的数字有误");
                }
        }
        public static void printDay(int time){//计算天数
                if(time%(3600*24)==0){
                        System.out.println(time/(3600*24)+"天");
                }else{
                        System.out.print(time/(3600*24)+"天");
                        time = time%(3600*24);
                        printHour(time);
                }
        }
        public static void printHour(int time){//计算小时
                if(time%3600==0){
                        System.out.println(time/3600+"小时");
                }else{
                        System.out.print(time/3600+"小时");
                        time = time%3600;
                        printMinute(time);
                }
        }
        public static void printMinute(int time){//计算分钟
                if(time%60==0){
                        System.out.println(time/60+"分");
                }else{
                        System.out.print(time/60+"分");
                        time = time%60;
                        printSecond(time);
                }                               
        }
        public static void printSecond(int time){//计算秒
                if(time>=0 && time <60){
                        System.out.println(time+"秒");
                }
        }
}

1 个回复

正序浏览
原理一样,但用了另一种方法
/**
要求:输入一个int类型数据,把它转换成天时分秒,并打印
思路:十进制转换成其他进制,可整除和取余获得。同理这里也可通过/和%进行转换
*/
import java.util.Scanner;
class Second2Date {
        public static void main(String[] args){
                Scanner sc = new Scanner(System.in);
                int num = sc.nextInt();

                if(num<0){
                        System.out.println("输入的数字有误!");
                        return;
                }

                int seconds = 0;
                int minutes = 0;
                int hours = 0;
                int days = 0;
                StringBuilder date = new StringBuilder();

                days = num / (24*3600); //天
                num = num % (24*3600);
                hours = num / 3600; //时
                num = num % 3600;
                minutes = num / 60; //分
                num = num % 60;
                seconds = num; //秒

                if(days != 0)
                        date.append(days + "天");
                if(hours != 0)
                        date.append(hours + "小时");
                if(minutes != 0)
                        date.append(minutes + "分");
                if(seconds != 0)
                        date.append(seconds + "秒");

                System.out.println(date);
        }
}
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马