package ben.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 时间相距
* @author Ben
* @version 1.0
* @date 2009-10-21 16:38:51
*/
public class DateDistance {
/**
* 两个时间之间相差距离多少天
* @param one 时间参数 1:
* @param two 时间参数 2:
* @return 相差天数
*/
public static long getDistanceDays(String str1, String str2) throws Exception{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date one;
Date two;
long days=0;
try {
one = df.parse(str1);
two = df.parse(str2);
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 str1, String str2) {
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(str1);
two = df.parse(str2);
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 str1, String str2) {
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(str1);
two = df.parse(str2);
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 + "秒";
}
}
相关推荐
### Java中计算两个日期相差几天 在Java编程中,经常需要处理与日期和时间相关的操作。其中一项常见的需求就是计算两个日期之间的差距。本篇文章将详细介绍如何在Java中计算两个日期相差几天,并深入探讨示例代码中...
在编程中,经常需要处理日期和时间,包括比较两个日期之间的差距。这个任务可以用于记录事件发生的时间间隔,计算年龄,或者在各种时间相关的算法中。以下是对标题和描述中提到的四种方法的详细解释: 1. **...
在Java编程语言中,比较两个日期之间的差值是一个常见的需求,尤其是在处理日历相关的功能时。本文将详细介绍如何在Java中计算两个日期之间的天数差,并对给出的代码进行解析。 #### 一、问题背景 在很多业务场景...
在Java编程语言中,计算两个日期之间的天数差是一个常见的任务,这在处理时间相关的业务逻辑时非常有用。本文将详细介绍如何使用Java进行此类计算,包括基础方法、API的使用以及可能遇到的问题。 首先,Java提供了`...
在JavaScript中,计算两个时间相差的分钟数是一个常见的任务,特别是在处理用户输入或者进行时间相关的逻辑时。本文通过一个具体的示例,展示了如何利用JavaScript来计算两个时间的差距,以分钟为单位。以下是对该...
根据给定的信息,本文将详细解释如何在Java中计算两个日期之间的时间差,并演示如何比较两个日期的大小。 ### 计算两个日期间的时间差 #### 使用`java.util.Date`和`java.text.SimpleDateFormat` 首先,我们需要...
在编程领域,计算两个日期之间的差值是一项常见的任务,它涉及到日期和时间的处理。本文将深入探讨如何在各种编程语言中计算日期相隔的时间,包括天数、分钟和秒数,以及时间间隔的计算方法。 首先,让我们理解日期...
Java日历相关的知识点还包括`Date`类和`SimpleDateFormat`类,这两个类在处理日期格式化时非常有用。`Date`类代表特定的瞬间,精确到毫秒,而`SimpleDateFormat`则用于日期和时间的格式化和解析。例如: ```java ...
上述语句将返回31,表示两个日期间相差31天。 3. **VBA(Visual Basic for Applications)**: 提供的文件"DATEDIFF.VBP"可能是一个VB6或VBA项目,其中的`DATEDIFF`函数是VB中的内置函数,用于计算两个日期之间的...
无论是JavaScript还是Java,计算两个日期之间相差天数的基本原理都是相似的:先将日期转换为统一的时间单位(通常是毫秒),然后计算两个时间单位之间的差值,并将其转换为所需的单位(如天)。在实际开发中,还需要...
- **不同编程语言实现相同算法效率相差很大**:如果两种语言在实现同一功能时效率差距明显,那么采用混合编程就可以充分发挥各自的优势。 - **不同软件间除了数据通讯外,其他相互独立**:即各部分代码仅处理自身...
接下来,计算两个时间点之间的差距通常涉及到计算它们之间相差的毫秒数。在JavaScript中,我们可以直接通过减法操作符 `-` 来获取两个Date对象之间的毫秒差,如 `endTime - new Date()`。然后,为了得到更易读的形式...
这是因为只有当石头重23公斤时,才会出现一个孩子的猜测与真实重量相差2公斤(即21公斤),同时有两个孩子的猜测与真实重量差距相同(即17公斤和26公斤)。 #### 三、数学应用 **6. 三只砝码称东西** - **题目描述...
例如,用户可能需要知道两个日期之间相差多少天,或者一个时间点距离现在有多远。这需要使用到日期时间类库,如Python的datetime模块,JavaScript的Date对象,或者Java的LocalDateTime等。 3. 时间单位转换 除了...
1. **长度相近**:两个形近字的长度不会相差太大。 2. **字母频率接近**:形近字中各个字母出现的次数大致相同。 3. **字母排列顺序相似**:两个单词中部分或全部字母的排列顺序相同或相似。 ##### 2.2 形近字的...
- 时间差计算:可以计算两个日期或时间之间的差距,例如计算相差的天数或小时数。 - 时间戳转换:将Unix时间戳转换为易读的日期格式。 5. **字符串操作** - 字符串拼接:工具类可能包含高效字符串拼接的方法,...