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

© 914360849 中级黑马   /  2015-5-28 20:58  /  448 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入16,打印16秒;
键盘输入60,打印1分;
键盘输入88,打印1分28秒;
键盘输入667,打印11分7秒;
键盘输入3608,打印1小时8秒

评分

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

查看全部评分

6 个回复

倒序浏览
坐等 :)11111
回复 使用道具 举报
秒 = X % 60;
分 = (X - 秒) / 60;
小时 =(分 - (分 % 60)) / 60;
回复 使用道具 举报
通过输入将天数,时,分,秒都算出来,再打印
回复 使用道具 举报
  1. /*4、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:

  2.         键盘输入6,打印6秒;
  3.         键盘输入60,打印1分;
  4.         键盘输入66,打印1分6秒;
  5.         键盘输入666,打印11分6秒;
  6.         键盘输入3601,打印1小时1秒
  7. */
  8. import java.util.Scanner;
  9. import java.util.Date;
  10. import java.text.SimpleDateFormat;
  11. class  PrintTime
  12. {
  13.         public static void main(String[] args)
  14.         {
  15.                 //接收键盘输入
  16.                 System.out.println("请输入整数秒:" );
  17.                 Scanner sc=new Scanner(System.in);
  18.                 int t=sc.nextInt();
  19.                 //将输入的秒数转换成毫秒
  20.                  change3(t);//传入的参数是秒
  21. //                 Date d1=new Date();
  22. //                 Date d2=new Date(haoMiaoNum);
  23. //                 Date d3=new Date(0);

  24. //                System.out.println(d1);
  25. //                System.out.println("d2:"+d2);
  26. //                System.out.println(d2-d3);
  27. //                System.out.println("--------------");
  28.                
  29. //                change(d2);
  30.                
  31.         }
  32.        
  33.         public static void change3(int num)//num秒数
  34.         {       
  35.                 if (num>=24*3600)//如果时间大于一天,一天24*3600秒
  36.                 {
  37.                         SimpleDateFormat sdf = new SimpleDateFormat( "dd"+"天,"+"HH:"+"小时,"+"mm:"+"分,"+"ss秒");//yyyy-MM-
  38.                         Date date=new Date(0);
  39.                         date.setTime(num*1000-8*60*60*1000-24*60*60*1000);//-23*60*60*1000
  40.                         String s=sdf.format(date);
  41.                         System.out.println("s:"+s);
  42.                 }else if(num<=24*3600&&num>=0)//时间小于一天
  43.                 {
  44.                 SimpleDateFormat sdf = new SimpleDateFormat("HH:"+"小时,"+"mm:"+"分,"+"ss秒");//"dd"+"天,"+//yyyy-MM-
  45.                 Date date=new Date(0);
  46.                 date.setTime(num*1000-8*60*60*1000);//-23*60*60*1000
  47.                 String s=sdf.format(date);
  48.                 System.out.println("s:"+s);
  49.                 }else
  50.                         System.out.println("!!!输入有误,请重新输入!!!" );
  51.                
  52.         }
  53. }
复制代码

想了两天  不知有何处不妥
回复 使用道具 举报
import java.io.*;
import java.util.*;


public class Test1
{
        public static void main(String[] args) throws IOException//可能出现IO异常  数据转换异常
        {
                Scanner s=new Scanner(System.in);//接收数据
                //二维数组Array[0]存放天数、小时数、分钟数、秒数,Array[1]存放与之对应的秒数
                int[][]Array=new int[][]{new int[4],{3600*24,3600,60,1}};
                String[] Str={"天","小时","分","秒"};//存放字符串
                try
                {
                        int t=s.nextInt();//将输入数据转为int
                        s.close();//关闭输入源
                        if(t<=0)
                                throw new RuntimeException("输入的数据有问题");//自定义输入数据异常
                        for(int i=0;i<4;i++)
                        {
                                Array[0][i]=t/Array[1][i];//循环求天,时,分,秒
                                t=t%Array[1][i];
                                if(Array[0][i]==0)//当天,时,分,秒为0时不需要输出
                                        continue;
                                System.out.print(Array[0][i]+Str[i]);
                        }
                }
                catch(Exception e)
                {
                        System.out.println("输入的数据有问题");
                }
        }
}
自己写的,仅供参考


回复 使用道具 举报
围观学习一下。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马