【计算两个日期相隔天数】java计算时间日期间隔程序

更新时间:2017-05-10    来源:时间日期    手机版     字体:

【www.bbyears.com--时间日期】

计算时间差 **/

 代码如下

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String systemTime = sdf .format(new Date()).toString();

    将截取到的时间字符串转化为时间格式的字符串 **/
    Date begin=sdf.parse(2008-03-28 11:55:30);
    Date end = sdf.parse(systemTime);

    long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

    long day=between/(24*3600);
    long hour=between%(24*3600)/3600;
    long minute=between%3600/60;
    long second=between%60/60;
    if((hour==0)&&(day==0)&&(minute<=30)) { /****/}


    比如:现在是2004-03-26 13:31:40
           过去是:2004-01-02 11:30:24
    我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

 

这里dateA,dateB的格式要与yyyy-MM-dd一致!切记!

实例
   

 代码如下 /**
      * 根????日期,取得相隔的天??br />       * 方法名  :
      * @param dateA
      * @param dateB
      * @return
      */
     public static int getBetweenDayNumber(String dateA, String dateB) {
      long dayNumber = 0;
      long DAY = 24L * 60L * 60L * 1000L;
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
      try {
       java.util.Date d1 = df.parse(dateA);
       java.util.Date d2 = df.parse(dateB);
       dayNumber = (d2.getTime() - d1.getTime()) / DAY;
      } catch (Exception e) {
       e.printStackTrace();
      }
      return (int) dayNumber;
     }

实例

 代码如下

SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
       java.util.Date end = dfs.parse("2004-03-26 13:31:40");
       long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒


       long day1=between/(24*3600);
       long hour1=between%(24*3600)/3600;
       long minute1=between%3600/60;
       long second1=between%60/60;
       System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");


实例

java中计算两日期间隔天数的简单示例

 代码如下

package com.color.program;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CompareTime {

public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";

try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}

/**
* 取得两个时间段的时间间隔
* return t2 与t1的间隔天数
* throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}

}


(format.parse(t1).getTime()-format.parse(t2).getTime() 间隔一年的话,这个数据就非常大了 如果多年,会不会有异常?

 

实例

计算两个日期时间差实例代码:

 代码如下

public static void main(String[] args) throws ParseException{

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Date currentTime=new Date();
  //将截取到的时间字符串转化为时间格式的字符串
  Date beginTime=sdf.parse("2010-07-27 12:53:30");
  //默认为毫秒,除以1000是为了转换成秒
  long interval=(currentTime.getTime()-beginTime.getTime())/1000;//秒
  long day=interval/(24*3600);//天
  long hour=interval%(24*3600)/3600;//小时
  long minute=interval%3600/60;//分钟
  long second=interval%60;//秒
  System.out.println("两个时间相差:"+day+"天"+hour+"小时"+minute+"分"+second+"秒");

 }
 


可以把数据库的日期时间转换成毫秒数,然后计算间隔时间差,如果只想计算出两个时间相差几天可以:间隔秒数/60*60*24。
注意:数据库中或提供的日期时间格式一定要与SimpleDateFormat("yyyy-MM-dd HH:mm:ss")中的日期格式一致,不然会出错的。

本文来源:http://www.bbyears.com/wangyetexiao/32523.html

猜你感兴趣

热门标签

更多>>

本类排行