`
darrenzhu
  • 浏览: 803718 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

计算两个日期之间有多少天多少小时多少分钟

    博客分类:
  • Java
阅读更多
package date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class CalculateIntervalBetween2Dates {
    private static final long DAY=24*60*60*1000;
    private static final long HOUR=60*60*1000;
    private static final long MINUTES=60*1000;
    private static final long SECONDS=1000;
    private static final long MILLIONSECONDS=1;
    
    public static void main(String[] args) {
	String startDateStr = "20121022";
	String endDateStr = "20121206";
	CalculateIntervalBetween2Dates.listNumberOfDates(startDateStr, endDateStr);
	CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MILLIONSECONDS);
	CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,SECONDS);
	CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,MINUTES);
	CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,HOUR);
	CalculateIntervalBetween2Dates.calculateInterval(startDateStr, endDateStr,DAY);
    }
    
    /**
     * List dates between start date and end date, including the start date and end date.
     * @param startDateStr
     * @param endDateStr
     */
    public static void listNumberOfDates(String startDateStr,String endDateStr){
	SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
	Date startDate = null;
	Date endDate = null;
	try {
	    startDate = sf.parse(startDateStr);
	    endDate = sf.parse(endDateStr);
	} catch (ParseException e) {
	    e.printStackTrace();
	}
	Calendar c1 = Calendar.getInstance();
	List<Date> cancelDates = new ArrayList<Date>();
	if (startDate != null && endDate != null && startDate.before(endDate)) {
	    Date tempDate = startDate;
	    do {
		cancelDates.add(tempDate);
		c1.setTime(tempDate);
		c1.add(Calendar.DAY_OF_MONTH, 1);
		tempDate = c1.getTime();
	    } while (tempDate.before(endDate));
	    cancelDates.add(endDate);
	}
	
	System.out.println("There are " + cancelDates.size() + " days between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive.");
	System.out.println("See the following list:");
	for (Date date : cancelDates) {
	    System.out.println(sf.format(date));
	}
	System.out.println();
    }
    
    /**
     * Calculate how many days/hours/minutes/seconds/million seconds between start date and end date, including the start date and end date.
     * @param startDateStr
     * @param endDateStr
     * @param interval
     */
    public static void calculateInterval(String startDateStr,String endDateStr,long interval){
	SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
	Date startDate = null;
	Date endDate = null;
	try {
	    startDate = sf.parse(startDateStr);
	    endDate = sf.parse(endDateStr);
	} catch (ParseException e) {
	    e.printStackTrace();
	}
	Calendar c1 = Calendar.getInstance();
	c1.setTime(startDate);
	long startInMillis=c1.getTimeInMillis();
	c1.setTime(endDate);
	//inclusive,2009/10/24-2009/10/23=1,but actually 2 days
	c1.add(Calendar.DAY_OF_MONTH, 1);
	
	long endInMillis=c1.getTimeInMillis();
	long between=endInMillis-startInMillis;
	System.out.println("There are " + (between/interval) +" "+getIntervalLabel(interval) + " between " + sf.format(startDate) + " and " + sf.format(endDate) + ", inclusive");
    }
    
    private static String getIntervalLabel(long interval){
	if(interval==DAY){
	    return "days";
	}else if(interval==HOUR){
	    return "hours";
	}else if(interval==MINUTES){
	    return "minutes";
	}else if(interval==SECONDS){
	    return "seconds";
	}else if(interval==MILLIONSECONDS){
	    return "million seconds";
	}else{
	    return "error";
	}
    }
}
分享到:
评论

相关推荐

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    - 要计算两个日期之间的差值,通常会先将它们转换为毫秒,然后计算两者之间的毫秒差。这可以通过`getTime()`方法实现,它返回Date对象自1970年1月1日00:00:00 GMT以来的毫秒数。 - 求出毫秒差后,再将其转换成天、...

    java中计算两个日期相差几天

    - **日程管理**:在实现诸如倒计时功能或会议提醒等应用时,准确计算两个日期之间的时间差至关重要。 总之,掌握如何在Java中计算两个日期相差几天是非常有用的技能,它不仅能够帮助开发者更高效地处理日期相关的...

    使用Java的Calendar类计算两段时间之间的工作日的天/小时/分钟/秒数

    该工具类用于两个时间段之间节假日的计算(可获取两个时间段之间的节假日天数,小时,分钟,秒)

    计算两个时间相差年月日时分秒.zip

    在这个名为"计算两个时间相差年月日时分秒.zip"的项目中,开发者创建了一个工具,能够精确地计算出两个日期之间的差值,以年、月、日、小时、分钟和秒的形式呈现。这个功能在多种场景下都非常实用,比如人力资源管理...

    Excel VBA 计算两个时间间隔, 精确到天,时,分,秒

    在Excel VBA(Visual Basic for Applications)中,计算两个时间间隔并精确到天、时、分、秒是一项常见的任务,特别是在处理大量数据或自动化工作流程时。VBA提供了丰富的日期和时间函数,使得我们可以轻松地进行...

    两个时间间隔的天数

    计算两个日期对象之间的时间差,并将其转换为天数。这里使用了 `Math.abs()` 来确保结果为正数,然后除以每天的毫秒数(1000 * 60 * 60 * 24)来得到天数。 4. 最终返回的是相隔的整数天数。 #### 示例代码 ```...

    计算日期差

    本文将详细讲解如何计算两个日期之间的差值,包括天数、小时、分钟和秒数。我们将基于Java语言,通过分析提供的`DateDays.java`和`Date`文件来探讨这一主题。 首先,Java提供了`java.util.Date`类来表示日期和时间...

    两个日期间计算 除去节假日 非工作时间

    在 Java 语言中,计算两个日期之间的工作日时间是一个常见的需求,特别是在需要排除周末和法定节假日的情况下。本文将通过一个示例代码,详细介绍如何计算两个日期之间的工作日时间,排除周末和法定节假日。 首先,...

    js 计算时间(几分钟前、几小时前、几天前、几周前、几月前)

    在JavaScript中,计算时间差并显示为“几分钟前”、“几小时前”、“几天前”、“几周前”或“几月前”的功能是一项常见的需求,主要用于动态更新信息的时效性,比如社交媒体的状态更新或者消息通知。这个功能的核心...

    JS计算两个时间相差分钟数的方法示例

    为了计算两个日期之间的时间差,我们使用`Math.abs(date2 - date1)`获取以毫秒为单位的差值,然后除以1000得到秒数,再除以60得到分钟数。将这个值存储在变量`m`中。 然后,我们提取时间部分(小时和分钟)并将其...

    计算两个时间的差(年月日星期小时分钟秒).js

    计算两个时间的差(年月日星期小时分钟秒),代码有问题可以留言,我看到就会回复。

    vb计算两个日期间隔

    在Visual Basic(简称VB)开发环境中,经常会遇到需要计算两个日期之间间隔的情况,比如在项目管理、数据分析等领域。本文将详细讲解如何使用VB来实现简单高效的日期间隔计算功能。 #### 一、基础知识介绍 在VB中...

    Oracle里面 SQL语句 怎么得到两个时间的时间差

    在Oracle数据库中,计算两个日期之间的时间差是一个常见的需求,特别是在处理与时间相关的业务逻辑时。根据提供的信息,本文将详细介绍如何使用SQL语句来获取两个时间(`START_DATE`和`END_DATE`)之间的差值,并...

    js计算两个时间的时间差

    在JavaScript中,计算两个时间之间的时间差是一项常见的需求,尤其是在涉及日期处理的应用程序中。本文将详细介绍如何使用JavaScript来计算两个时间之间的差异,并提供一种实用的方法来解析这种差异。 ### 标题:...

    VC中计算两个时间点的时间间隔

    在VC++编程环境中,计算两个时间点之间的时间间隔是一项常见的任务,特别是在性能分析、时间触发的事件处理或者计时器应用中。本篇文章将详细探讨如何在VC++中实现这一功能,主要涉及C++标准库中的`chrono`库以及...

    java 工具类 获取俩个时间之间相差分钟数 排除周六周日 节假日 精确到分钟数/秒

    网上排除节假日、周六周日 获取相差时间 分为四种情况, 精确到天 此工具类在此基础之上进行优化, 分为俩种情况, 精确到分钟,保留俩位小数 (精确到秒 需自己加工下) 入口方法: getWorkHours

    计算2个日期之间的天数

    在JavaScript编程语言中,计算两个日期之间的天数是一项常见的任务,尤其在处理时间相关的应用程序时。这个需求可以通过几个简单的步骤来实现,即使对于初学者来说也是相当直观的。以下是一个基本的方法来完成这个...

    C# 计算两个时间的年月日物理时间差。。(修改后的)

    在C#编程中,计算两个日期之间的年月日物理时间差是一项常见的任务,尤其是在处理日期相关的业务逻辑时。本文将详细解析如何实现这个功能,并基于提供的标题和描述进行深入讲解。 首先,我们要明确"物理时间差"的...

    计算两个日期相差的秒数 C源码

    在软件开发过程中,经常需要处理时间相关的计算问题,其中一个常见的需求就是计算两个日期之间的时间差。本篇文章将详细介绍如何使用C语言来计算两个日期相差的秒数,并提供一段示例代码进行解释。 #### 相关知识点...

    DateTime相差年月日相差计算

    在编程领域,尤其是在处理时间相关的任务时,计算两个日期之间的差值是一项常见的需求。C#作为.NET框架的主要编程语言,提供了丰富的DateTime结构和方法来帮助我们进行这样的计算。标题"DateTime相差年月日相差计算...

Global site tag (gtag.js) - Google Analytics