java小程序之倒计时
Java基础小程序之倒计时
我有一个朋友,他叫亮亮,想自学java又不太想动,于是我就闲来无事写写小程序小知识点,希望他有一天想学习的时候能帮点儿忙。由于他是自学,我尽量写详细,思路清晰点儿。
需求
做一个倒计时程序,输入一个时间,每秒输出还剩多少时间。
思路
输入一个时间字符串,例如18:00:00,截取时分秒,转化为秒,获取当前时间,转化为秒,输入的秒数减去当前的秒数得到倒计时的秒数,然后写个循环,每秒递减1,秒数转化为时间,输出。
代码
话不多说,直接上代码
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DaoJiShi {/*** @param args* * 需求:输入一个时间字符串,例如18:00:00,截取时分秒,转化为秒,获取当前时间,转为秒,* 输入的秒减去当前的秒得出要倒计时的秒数,倒计时,每秒更新还剩多少时间。* 注意,输入的时间的冒号用英文状态下的冒号。,要不然截取时会出问题。输入的时间要在当前时间之后*/public static void main(String[] args) {// TODO Auto-generated method stubString strIn = getTime();//获取输入的时间String strNow = getNowByTime();//获取当前时间long DaoJS = getSByTime(strIn) - getSByTime(strNow);//输入的秒数减去当前秒数获取倒计时秒数time(DaoJS);//调用倒计时方法,参数为需要倒计时的秒数}//获取输入的时间public static String getTime() {// TODO Auto-generated method stubSystem.out.println("请输入一个时间");Scanner str = new Scanner(System.in);//输入扫描String strIn = str.next();//输入的字符串放到steIn中System.out.println("你输入的时间是"+strIn); return strIn; }//获取当前系统时间public static String getNowByTime(){SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");//设置日期格式String newTime = df.format(new Date());//获取当前系统时间,此时newTime的格式为HH:mm:ssreturn newTime;}//根据时间转为秒数public static long getSByTime(String strIn) {String[] sList = strIn.split(":");//根据“:”截取字符串,放到sList集合里//字符串转数字,装入时分秒代表的变量里 开始Integer h= Integer.valueOf(sList[0]);//小时Integer m = Integer.valueOf(sList[1]);//分钟Integer s= Integer.valueOf(sList[2]);//秒System.out.println("小时为"+h+"分钟为"+m+"秒数为"+s);//字符串转数字,装入时分秒代表的变量里 结束long inStime = h * 60 * 60 + m * 60 + s ;//时间转为秒数System.out.println("一共"+inStime+"秒");return inStime;}
//根据秒数倒计时public static void time(long Time) {while (Time>0) {Time --;try {Thread.sleep(1000);//睡1000毫秒,相当于睡一秒,每秒跳一下int hh = (int) (Time/60 / 60 );//小时int mm = (int) (Time/60 % 60 ); //分钟int ss = (int) (Time% 60); //秒if (hh==0 && mm==0 && ss==0) {System.out.println("倒计时结束,原地爆炸!!!!");break; }System.out.println("还剩"+hh+"小时"+mm+"分钟"+ss+"秒");} catch (InterruptedException e) {e.printStackTrace();}}}
}
注意事项
1 输入的字符串要用英文冒号分隔,要不然报错。
2 输入的时间要在当前的时间之后,要不然不进循环,没输出。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
