/*
3、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
*/
import java.util.Scanner;
class Test
{
public static void main(String[] args)
{
int d,h,min,s;
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
/*此算法效率不高,因为每次都要算天数,如果输入的秒数小于86400(一天的秒数)
实际上可以不用算天数,算小时也是一样的.请楼主自己改进.
其实,本题目的思想很简单,就比如给你一个3位数,怎么得到它的百位,十位和个位上的数字.
想要得到百位上的数,就要除以100,十位上的数就是这个数减去百位乘以100再除以10.余数就是个位.
*/
d=num/(60*60*24);//除以一天的秒数得到天数.
h=(num-d*(60*60*24))/(60*60);//减去d天的秒数,再除以3600s得到小时数.
min=(num-d*(60*60*24)-h*(60*60))/60;//减去前面的天和小时,得到分钟数.
s=num%60;//对60取摸,可以直接得到秒数.
if(d!=0)
System.out.println(d+"天"+h+"小时"+min+"分"+s+"秒");
else if(d==0&&h!=0)
System.out.println(h+"小时"+min+"分"+s+"秒");
else if(d==0&&h==0)
System.out.println(min+"分"+s+"秒");
else
System.out.println(s+"秒");
}
} |