黑马程序员技术交流社区
标题:
java入学第一题
[打印本页]
作者:
你媚你魅你
时间:
2014-7-28 16:48
标题:
java入学第一题
从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒
作者:
chen010yu
时间:
2014-7-28 17:06
路过进来看看
作者:
吴杰栋
时间:
2014-7-28 20:38
我还是初学者,只想到了这个笨方法
package cn.demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
键盘输入6,打印6秒;
键盘输入60,打印1分;
键盘输入66,打印1分6秒;
键盘输入666,打印11分6秒;
键盘输入3601,打印1小时1秒*/
public class Demo {
public static void main(String[] args) throws IOException {
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String str = bufr.readLine();
int i = Integer.parseInt(str);
if(i>=0 && i<=60)
System.out.println(i+"秒");
else if(i>60 && i<3600)
System.out.println(i/60+"分"+(i-60*(i/60))+"秒");
else if(i>=3600 && i<86400)
System.out.println(i/3600+"小时"+(i-3600*(i/3600))+"秒");
}
}
复制代码
作者:
这个夏天的芬芳
时间:
2014-7-28 21:49
{:3_50:}{:3_50:}{:3_50:}{:3_50:}{:3_50:}{:3_50:}
作者:
yqj
时间:
2014-7-29 15:38
我想到的用“%”运算的另一种方法,lz也可以参考参考
import java.io.IOException;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) throws IOException {
// 键盘录入获取时间值
System.out.println("请输入时间值:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i >= 0 && i <= 60)
System.out.println(i + "秒");
else if (i > 60 && i < 3600)
System.out.println(i / 60 + "分" + (i % 60) + "秒");
else if (i >= 3600 && i < 86400)
System.out.println(i / 3600 + "小时" + (i % 3600 / 60) + "分"
+ (i % 60) + "秒");
else if (i >= 86400) {
System.out.println(i / 86400 + "天" + i % 86400 / 3600 + "小时"
+ (i % 3600 / 60) + "分" + (i % 60) + "秒");
}
}
}
复制代码
作者:
lpc4276139
时间:
2014-7-29 17:19
吴杰栋 发表于 2014-7-28 20:38
我还是初学者,只想到了这个笨方法
这么强悍。顶一个。。。。。
作者:
zhuohong_xiao
时间:
2014-8-2 12:28
我还只是一个初学者阿.还不知道怎么做啊.学习了阿.
作者:
丸子
时间:
2014-8-2 12:43
看看我的,貌似繁琐
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Text2 {
/**
* 2.从键盘接受一个数字,打印该数字表示的实际那,最大单位到天
* @fjx
*
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//读取输入的值
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=br.readLine();
int time=Integer.parseInt(line);
//定义天、时、分
int day = 0;
int hours;
int minute;
//判断输入的数表示的时间
if(time<60) //用秒表示
System.out.println(time+"秒");
else if(time<3600) //用分秒表示
System.out.println(time/60+"分"+time%60+"秒");
else if(time<216000) //用时分秒表示
System.out.println(time/3600+"小时"+(time%3600)/60+"分"+(time%3600)%60+"秒");
else //用天时分秒表示
{
day=time/216000;
time=time%216000;
hours=time/3600;
time=time%3600;
minute=time/60;
System.out.println(day+"天"+hours+"小时"+minute+"分"+time%60+"秒");
}
}
}
作者:
bbdeyouxang
时间:
2014-8-2 23:47
用到Calendar 类和正则,正则学的不好,不然能一行转化掉,代码如下,测试通过:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class GetTimeBySecond
{
private static SimpleDateFormat df= new SimpleDateFormat("HH小时mm分ss秒");
public static void main(String[] args) {
System.out.println("请输入一个数字");
Scanner input = new Scanner(System.in);
try{
int second = input.nextInt();
Calendar date = Calendar.getInstance();
date.set(0, 0, 0, 0, 0, second);
String dateStr = df.format(date.getTime());
dateStr = dateStr.replaceAll("[0]{2}[^x00-xff]{1,2}", "");//去掉00小时,00分和00秒
dateStr = dateStr.replaceAll("分[0]", "分").replaceAll("小时[0]", "小时");//将01分01秒这种情况转化为1分1秒的情况
System.err.println(dateStr.startsWith("0") ? dateStr.substring(1) : dateStr);//最后截取01小时这样的情况
}catch(Exception e){
System.err.println("您输入的不是数字");
}
}
}
复制代码
作者:
沟门大杏
时间:
2014-8-3 09:18
不会。进来一看
作者:
韩天雷
时间:
2014-8-3 09:25
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 3、 从键盘接受一个数字,打印该数字表示的时间,最大单位到天,例如:
*
* 键盘输入6,打印6秒; 键盘输入60,打印1分; 键盘输入66,打印1分6秒;
* 键盘输入666,打印11分6秒; 键盘输入3601,打印1小时1秒
*
* @author HanTianlei
*
*/
public class Test3 {
public static void main(String[] args) {
// 提示输入一个数字
System.out.println("请输入一个数字:");
// 带缓冲的键盘读取流定义
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
long num = 0;// 用来记录输入的数字
String inputstr = null;// 用来记录从键盘读取来的字符串形式的数据
try {
// 从键盘读取数据
inputstr = bf.readLine();
} catch (IOException e) {
// IO出错抛出一个RuntimeException,中断程序执行
throw new RuntimeException("IO异常");
}
// 如果输入的数据转换失败,则给出相应提示
try {
num = Long.parseLong(inputstr);
} catch (NumberFormatException e) {
System.out.println("数字格式错误");
}
// 调用打印方法
print(num);
}
// 打印方法实现,需传入键盘读取来的秒数
public static void print(long num) {
// 定义三个整型常量,分别表示 分,小时,天所包含的秒数
final int MINUTE = 60;
final int HOUR = 60 * 60;
final int DAY = 60 * 60 * 24;
// 判断输入的数字是否大于零
if (num < 0) {
System.out.println("请输入一个大于零的数!");
return;
}
// 求出天数,小时数,分钟数,秒数
long day = num / DAY;
long hour = (num % DAY) / HOUR;
long minute = (num % HOUR) / MINUTE;
long second = num % MINUTE;
// 如果值为0,则不输出
if (day != 0)
System.out.print(day + "天");
if (hour != 0)
System.out.print(hour + "小时");
if (minute != 0)
System.out.print(minute + "分");
if (second != 0)
System.out.print(second + "秒");
System.out.println();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2