黑马程序员技术交流社区
标题:
程序哪里出问题了
[打印本页]
作者:
净坛使者
时间:
2014-1-4 07:09
标题:
程序哪里出问题了
从键盘接受一个数字,打印该数字表示的时间,最大单位到天
例如:
键盘输入6,打印6秒
键盘输入60,打印1分
键盘输入66,打印1分6秒
键盘输入666,打印11分6秒
键盘输入3601,打印1小时1秒
键盘输入86440,打印1天40秒
class Clk
{
public static void main(String[] args)
{
int x = 864401;
if (x<=60){
System.out.println(x%60+"秒");
}
else if (60<x&&x<=3600){
System.out.println(x/60+"分"+x%60+"秒");
}
else if (3600<x&&x<=86400){
System.out.println(x/3600+"时"+(x%3600/60)+"分"+(x%3600/60%60)+"秒");
}
else if (86400<x){
System.out.println((x/86400)+"天"+(x%86400/3600/24)+"时"+(x%86400%3600%24/60)+"分"+(x%86400%3600%24%60%60)+"秒");
}
}
}
怎么做才能去掉0分等不用的数直接输出
作者:
小悠久
时间:
2014-1-4 09:55
你这个程序我看拉下,如果想去掉0将会很麻烦。我给你个程序你参考下,也可能有不足的地方,不懂的问我
代码如下:
import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//获取键盘输入的数值
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
//求秒数
int m=i%60;
//求分数
int fen=(i-i%60)/60;
int hour=0;
int day=0;
//分钟超过60分时转换成小时
if(fen >= 60)
{
hour=((i-i%60)/60)/60;
fen=fen-hour*60;
}
//小时超过24小时时转换成天
if (((i-i%60)/60)/24 >= 24)
{
day=(((i-i%60)/60)/60)/24;
hour=hour-day*24;
}
if(day>0)
{
//输出天
System.out.print(day + "天");
}
if(hour>0)
{
//输出小时
System.out.print(hour + "时");
}
if(fen>0)
{
//输出分钟
System.out.print(fen + "分");
}
if(m>0)
{
//输出秒
System.out.print(m + "秒");
}
}
}
作者:
李兴
时间:
2014-1-4 15:48
精简之后的代码如下
int x = 864401;
System.out.println((x/86400 == 0?"":x/86400+"天")+
(x%86400/3600/24 == 0?"":x%86400/3600/24+"时")+
(x%86400%3600%24/60 == 0?"":x%86400%3600%24/60+"分")+
(x%86400%3600%24%60%60)+"秒");
复制代码
这里使用三目运算符进行判断处理,简化了书写
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2