package com.itheima;
import java.util.Scanner;
/**
* 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
*
* 键盘输入6,打印6秒;
*
* 键盘输入60,打印1分;
*
* 键盘输入66,打印1分6秒;
*
* 键盘输入666,打印11分6秒;
*
* 键盘输入3601,打印1小时1秒
*
* @author 14r
*
*/
public class Test3 {
/**
* @param args
*/
public static void main(String[] args) {
// 创建打印机接收用户的输入
Scanner input = new Scanner(System.in);
// 提示用户输入
System.out.println("请输入一个整数:");
int num = input.nextInt();
// 调用转换成时间的方法并用String类型的变量time接收
String time = convertToTime(num);
// 输出time
System.out.println(time);
}
/*
* 将数字转换成时间的函数,返回一个字符串
*/
public static String convertToTime(int num) {
String time = null;
// num小于60的时候,不需要换算
if (num < 60) {
time = num + "秒";
}
// num大于等于60并且小于1小时的时候
if (num >= 60 && num < 60 * 60) {
// 两种情况,整除的时候即秒为0,算出 分
if (num % 60 == 0) {
time = num / 60 + "分";
} else {// 否则需要算出 分+秒
time = num / 60 + "分" + num % 60 + "秒";
}
}
// 如果数字大于等于1小时并且小于一天则进入该if语句
if (num >= 60 * 60 && num < 60 * 60 * 24) {
// 如果能够整除3600秒即一小时,那么直接换算成天即可
if (num % 3600 == 0) {
time = num / 3600 + "小时";
} else if (num % 3600 < 60) {// 如果不能整除3600秒,那么取余数看是否小于60,如果成立,换算成天+秒
time = num / 3600 + "小时" + num % 3600 + "秒";
} else if (num % 3600 >= 60) {// 如果不能整除3600秒,取余数大于等于60则进入
// 这里分2种情况
if ((num % 3600) % 60 == 0) {// 整除的话,后面就不需要带秒了
time = num / 3600 + "小时" + (num % 3600) / 60 + "分";
} else {// 否则需要算出后面的秒数
time = num / 3600 + "小时" + (num % 3600) / 60 + "分"
+ (num % 3600) % 60 + "秒";
}
}
}
// 如果num大于3600*24即一天则进入此代码块
if (num >= 3600 * 24) {
if (num % 86400 == 0) {// 整除1天(86400)的时候直接换算成天
time = num / 86400 + "天";
} else if (num % 86400 < 60) {// 不整除时看余数是否小于60,条件成立的话直接算 天+秒
time = num / 86400 + "天" + num % 86400 + "秒";
} else if (num % 86400 >= 60 && num % 86400 < 3600) {// num除以一天(86400)余数大于等于60小于一小时的时候的情况,算分和秒,不算小时
// 这里两种情况
if ((num % 86400) % 60 == 0) {// num除以一天的余数能够整除60的话,算出 天+分
time = num / 86400 + "天" + num % 86400 / 60 + "分"; //
} else {// num除以一天的余数不能够整除60的话,算出 天+分+秒
time = num / 86400 + "天" + num % 86400 / 60 + "分" + num
% 86400 % 60 + "秒";
}
} else if (num % 86400 >= 3600) {// num除以一天的余数大于等于1小时的情况
// 这里三种情况
if (num % 86400 % 3600 == 0) {// num除以一天的余数能够整除3600 ,则算出 天+小时
time = num / 86400 + "天" + num % 86400 / 3600 + "小时";
} else if (num % 86400 % 3600 < 60) {// num除以一天的余数不能整除小时,余数小于60,算出
// 天+小时+秒
time = num / 86400 + "天" + num % 86400 / 3600 + "小时" + num
% 86400 % 3600 + "秒";
} else if (num % 86400 % 3600 >= 60) {// num除以一天的余数不能整除小时,余数大于60
// 这里又分了2种情况
if (num % 86400 % 3600 % 60 == 0) {// num除以一天的余数不能整除小时,余数能够整除60时,算出天+小时+分
time = num / 86400 + "天" + num % 86400 / 3600 + "小时"
+ num % 86400 % 360 / 60 + "分";
} else {// num除以一天的余数不能整除小时,余数不能够整除60时 算出 天+小时+分+秒
time = num / 86400 + "天" + num % 86400 / 3600 + "小时"
+ num % 86400 % 3600 / 60 + "分" + num % 86400
% 3600 % 60 + "秒";
}
}
}
}
return time;
} |
|