您的位置:首页 > 其它

获取两个日期之间的日期间隔

2011-12-05 10:14 239 查看
public class TestDate {

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

//获取当前月份的最大天数。

//获取本月日历。

Calendar c= Calendar.getInstance();

int day=c.getFirstDayOfWeek();

System.out.println(c);

@SuppressWarnings("unused")

int day1=c.getActualMaximum(Calendar.DAY_OF_MONTH);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM\t"+day);

System.out.println(sdf.format(new Date()));

//设置当前为本月第一天。

c.set(Calendar.DATE,1);

//把日历中天数减一得到最后一天。

c.set(Calendar.DATE, -1);

SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");

System.out.println(sdf1.format(c.getTime()));

//2、获取当前月份第一天。

SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-01");

System.out.println(sdf2.format(new Date()));

//计算两个相隔时间之间的天数,把两个时间转换成毫秒数然后相减,然后再转换成天数。

SimpleDateFormat sdf3=new SimpleDateFormat("yyyy/MM/dd");

//开始日期。

Date begin=sdf3.parse("2009/10/10");

Date end=sdf3.parse("2009/10/15");

long dayinterval=((end.getTime()/1000)-(begin.getTime()/1000))/(60*60*24);

Date begin1=sdf3.parse("2008/10/10");

Date end1=sdf3.parse("2009/10/12");

long dayinterval1=(end1.getTime()-begin1.getTime())/(60*60*24*1000);

//由此可见其实只要是你的算法没有错误,那么结果就是正确的。

System.out.println("相隔的天数为"+dayinterval);

System.out.println("相隔的天数为"+dayinterval1);

System.out.println(begin.getTime());

Date d1=new Date();

SimpleDateFormat sdf8=new SimpleDateFormat("yyyy/MM/dd-hh:mm:ss");

System.out.println(sdf8.format(d1));

long beforeTime = (d1.getTime())-60*60*24*365*1000;

long beforeTime1 = (d1.getTime()/1000)-60*60*24*365;

d1.setTime(beforeTime);

System.out.println(sdf2.format(d1));

d1.setTime(beforeTime1*1000);

System.out.println(sdf2.format(d1));

//从此运行的结果来看是有问题的,就是在求日期的时候,换算成为秒数之后再去求时间是比较准的。

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: