您的位置:首页 > 编程语言 > Java开发

JAVA之时间计算,键盘录入时间间隔得到未来时间

2016-05-30 05:14 471 查看
1、输入:小时数.分钟数

2、得到以当前时间为基准的未来时间

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
* 时间计算
*
* @author LIWEI
* @version 1.0
* @since 2016年5月29日 下午10:56:14
*/
public class TimesCalc {
public static void main(String[] args) {
// 输入时间间隔,多少小时,多少分钟
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
// 输入间隔小时数
System.out.print("输入间隔时间(小时数.分钟数):");
String interval = scan.next();
if (!isRight(interval)) {
System.out.println("格式有误");
return;
}
String[] sz = interval.split("\\.");
// 创建当前时间
long currentTime = System.currentTimeMillis();
currentTime += Integer.parseInt(sz[0]) * 60 * 60 * 1000;
currentTime += Integer.parseInt(sz[1]) * 60 * 1000;
Date targetTime = new Date(currentTime);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println("目标时间:" + sdf.format(targetTime));
}

/**
* 判断字符串是否符合格式:数字.数字
*/
private static boolean isRight(String str) {
str = str.trim();
if (str.indexOf(".") < 0) {
return false;
}
String[] checkstr = str.split("\\.");
if (checkstr.length != 2) {
return false;
}
try {
int hours = Integer.parseInt(checkstr[0]);
int minutes = Integer.parseInt(checkstr[1]);
if (hours < 0 || minutes < 0) {
return false;
}
} catch (NumberFormatException e) {
return false;
}
return true;
}
}

代码粗糙,请见谅!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: