java语言编程实现两个时间相差多少天、多少小时、多少分、多少秒

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java语⾔编程实现两个时间相差多少天、多少⼩时、多少分、多
少秒
不多说,直接上⼲货!
DateDistance.java
package zhouls.bigdata.DataFeatureSelection.test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 两个时间差计算
*/
public class DateDistance {
private static String distanceTime;
public static void main(String[] args) throws Exception {
String startday = "2017-09-20";
String endday ="2017-09-28";
long DistanceDays = getDistanceDays(startday,endday);//两个时间之间相差距离多少天
System.out.println(DistanceDays);
String starttimes = "2017-01-17 00:10:20";
String endtimes ="2017-01-18 00:10:21";
long[] DistanceTimes = getDistanceTimes(starttimes,endtimes);//两个时间相差距离多少天多少⼩时多少分多少秒,以long[]形式返回
for (int i = 0; i < DistanceTimes.length; i++) {
System.out.println(DistanceTimes[i]);
}
String DistanceTime = getDistanceTime(starttimes,endtimes);//两个时间相差距离多少天多少⼩时多少分多少秒,以String形式返回
System.out.println(DistanceTime);
}
/**
* 两个时间之间相差距离多少天
* @param one 时间参数 1:
* @param two 时间参数 2:
* @return 相差天数
*/
public static long getDistanceDays(String starttime, String endtime) throws Exception{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date one;
Date two;
long days=0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
days = diff / (1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return days;//返回相差多少天
}
/**
* 两个时间相差距离多少天多少⼩时多少分多少秒
* @param str1 时间参数 1 格式:1990-01-01 12:00:00
* @param str2 时间参数 2 格式:2009-01-01 12:00:00
* @return long[] 返回值为:{天, 时, 分, 秒}
*/
public static long[] getDistanceTimes(String starttime, String endtime) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
} catch (ParseException e) {
e.printStackTrace();
}
long[] times = {day, hour, min, sec};
return times;
}
/**
* 两个时间相差距离多少天多少⼩时多少分多少秒
* @param str1 时间参数 1 格式:1990-01-01 12:00:00
* @param str2 时间参数 2 格式:2009-01-01 12:00:00
* @return String 返回值为:xx天xx⼩时xx分xx秒
*/
public static String getDistanceTime(String starttime, String endtime) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
} catch (ParseException e) {
e.printStackTrace();
}
return day + "天" + hour + "⼩时" + min + "分" + sec + "秒";
}
}
当然,我们可以进⼀步,将其放到⼀个时间的⼯具类去。

同时,这⾥⼤家也可以更改格式
DateDistance.java
package zhouls.bigdata.DataFeatureSelection.test;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 两个时间差计算
*/
public class DateDistance {
private static String distanceTime;
public static void main(String[] args) throws Exception {
String startday = "2017:09:20";
String endday ="2017:09:28";
long DistanceDays = getDistanceDays(startday,endday);//两个时间之间相差距离多少天
System.out.println(DistanceDays);
String starttimes = "2017:01:17 00:10:20";
String endtimes ="2017:01:18 00:10:21";
long[] DistanceTimes = getDistanceTimes(starttimes,endtimes);//两个时间相差距离多少天多少⼩时多少分多少秒,以long[]形式返回for (int i = 0; i < DistanceTimes.length; i++) {
System.out.println(DistanceTimes[i]);
}
String DistanceTime = getDistanceTime(starttimes,endtimes);//两个时间相差距离多少天多少⼩时多少分多少秒,以String形式返回 System.out.println(DistanceTime);
}
/**
* 两个时间之间相差距离多少天
* @param one 时间参数 1:
* @param two 时间参数 2:
* @return 相差天数
*/
public static long getDistanceDays(String starttime, String endtime) throws Exception{
DateFormat df = new SimpleDateFormat("yyyy:MM:dd");
Date one;
Date two;
long days=0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
days = diff / (1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return days;//返回相差多少天
}
/**
* 两个时间相差距离多少天多少⼩时多少分多少秒
* @param str1 时间参数 1 格式:1990-01-01 12:00:00
* @param str2 时间参数 2 格式:2009-01-01 12:00:00
* @return long[] 返回值为:{天, 时, 分, 秒}
*/
public static long[] getDistanceTimes(String starttime, String endtime) { DateFormat df = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss"); Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
} catch (ParseException e) {
e.printStackTrace();
}
long[] times = {day, hour, min, sec};
return times;
}
/**
* 两个时间相差距离多少天多少⼩时多少分多少秒
* @param str1 时间参数 1 格式:1990-01-01 12:00:00
* @param str2 时间参数 2 格式:2009-01-01 12:00:00
* @return String 返回值为:xx天xx⼩时xx分xx秒
*/
public static String getDistanceTime(String starttime, String endtime) { DateFormat df = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss"); Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
try {
one = df.parse(starttime);
two = df.parse(endtime);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1<time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
} catch (ParseException e) {
e.printStackTrace();
}
return day + "天" + hour + "⼩时" + min + "分" + sec + "秒"; }
}。

相关文档
最新文档