发现大家的答案各种Bug~~发个无bug版本的~代码用的是笨方法~
容易的方法是定义四个变量d,h,m,s
当d,h,m,s等于0时,不输出,大于0时才输出
- package cn.itheima.test;
- /**
- * 1、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
- * 键盘输入6,打印6秒;
- * 键盘输入60,打印1分;
- * 键盘输入66,打印1分6秒;
- * 键盘输入666,打印11分6秒;
- * 键盘输入3601,打印1小时1秒
- */
- import java.util.*;
- public class Test1 {
- public static void main(String[] args) {
- System.out.println("请输入正整数:");
- Scanner sc = new Scanner(System.in);
- int x = sc.nextInt();
- if(x>0&&x<60){//控制秒
- System.out.println(x+"秒");
- }else if(x>=60&&x<3600){//控制分
- if(x%60==0){
- System.out.println(x/60+"分");
- }else{
- System.out.println(x/60+"分"+x%60+"秒");
- }
- }else if(x>=3600&&x<(3600*24)){//控制小时
- if(x%3600==0){
- System.out.println(x/3600+"小时");
- }else if(x%60==0){
- System.out.println(x/3600+"小时"+x%3600+"秒");
- }else{
- if(x%3600<60){//超过某小时,但是还没到达分的情况
- System.out.println(x/3600+"小时"+x%60+"秒");
- }else{
- System.out.println(x/3600+"小时"+(x%3600)/60+"分"+x%60+"秒");
- }
- }
- }else if(x>=(3600*24)){//控制天
- if(x%(3600*24)==0){
- System.out.println(x/(3600*24)+"天");
- }else if(x%3600==0){
- System.out.println(x/(3600*24)+"天"+x/3600+"小时");
- }else if(x%60==0){
- System.out.println(x/(3600*24)+"天"+x/3600+"小时"+x/60+"分");
- }else{
- if(x%(3600*24)<60){//超过某天,但是还未到分的情况
- System.out.println(x/(3600*24)+"天"+x%60+"秒");
- }else if(x%(3600*24)<3600){//超过某天某分,但是还未到达小时的情况
- System.out.println(x/(3600*24)+"天"+x/60+"分"+x%60+"秒");
- }else{
- System.out.println(x/(3600*24)+"天"+x/3600+"小时"+x/60+"分"+x%60+"秒");
- }
- }
- }else{
- System.out.println("时间格式不正确");
- }
- }
- }
复制代码
|