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;
}
}
代码粗糙,请见谅!
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;
}
}
代码粗糙,请见谅!
相关文章推荐
- BAT之简单java类启动器,通用执行当前目录java主程序
- Eclipse 对项目中特定文件使用指定编码格式
- java实现VEBTree
- 使用awt中的类操作图片缩放、变圆透明、水印、合并
- ## IntelliJ IDEA Version 2016.1.2 编译Scala和Java ##
- Java关注
- Effit-JAVA第5.6.7章
- 多线程下载
- Effict-java 第四章
- JVM结构和细节
- Eclipse创建Hibernate入门实例代码详细解析
- 利用Spring 和DBCP实现分布式动态数据库连接池管理
- [置顶] 解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
- Eclipse连接Hadoop / An internal error occurred during: "Map/Reduce location status updater".java.lang.NullPointerException
- Java常用工具类
- javaweb中el表达式不能被解析的解决方案
- SpringMVC 3.1集成Spring Security 3.1
- CAS 与 Spring Security 3.1整合配置详解
- java与数据库之间的日期的简单操作
- Spring post json, 并在服务器端将接收到的json装配成Java Bean