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+"秒");
}
}
}
作者: Ralap军 时间: 2015-8-29 14:40
原理一样,但用了另一种方法
/**
要求:输入一个int类型数据,把它转换成天时分秒,并打印
思路:十进制转换成其他进制,可整除和取余获得。同理这里也可通过/和%进行转换
*/
import java.util.Scanner;
class Second2Date {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
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; //秒