利用 Java 中 Calendar 计算两个日期之间的天数和周数
前言
究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它们的区别在哪呢?
比如有:
月份的定义 - 阳 `(公)历 一年 12 个月, 每个月的天数各不同; 阴 (农) 历, 每个月固定 28 天
每周的第一天 - 阳 (公) 历星期日是第一天; 阴 (农) 历, 星期一是第一天
实际上, 在历史上有着许多种纪元的方法它们的差异实在太大了, 比如说一个人的生日是 "八月八日" 那么一种可能是阳 (公) 历的八月八日, 但也可以是阴 (农) 历的日期所以为了计时的统一, 必需指定一个日历的选择那现在最为普及和通用的日历就是 "Gregorian Calendar" 也就是我们在讲述年份时常用 "公元几几年"Calendar 抽象类定义了足够的方法, 让我们能够表述日历的规则 Java 本身提供了对 "Gregorian Calendar" 规则的实现我们从
Calendar.getInstance()
中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过
new GregorianCalendar()
获得的结果一致)下面话不多说了, 来看看本文的正文吧
利用 java 中 Calendar 类计算出两个日期之间的天数和周数的算法!
计算出日期之间的天数:publicObjectcountTwoDate(ObjectstartDate,ObjectendDate)
{
if(StringUtils.isNotEmpty(startDate)&&StringUtils.isNotEmpty(endDate))
{
Datestart=(Date)startDate;
Dateend=(Date)endDate;
Calendarcal=Calendar.getInstance();
cal.setTime(start);
longtime1=cal.getTimeInMillis();
cal.setTime(end);
longtime2=cal.getTimeInMillis();
longbetween_days=(time2-time1)/(1000*3600*24);
returnInteger.parseInt(String.valueOf(between_days));
}
returnnull;
}
再计算出周数:publicObjectcountTwoDayWeek(ObjectstartDate,ObjectendDate)
{
if(StringUtils.isNotEmpty(startDate)&&StringUtils.isNotEmpty(endDate))
{
Datestart=(Date)startDate;
Dateend=(Date)endDate;
Calendarcal=Calendar.getInstance();
cal.setTime(start);
longtime1=cal.getTimeInMillis();
cal.setTime(end);
longtime2=cal.getTimeInMillis();
longbetween_days=(time2-time1)/(1000*3600*24);
Doubledays=Double.parseDouble(String.valueOf(between_days));
if((days/7)>0&&(days/7)<=1){
// 不满一周的按一周算
return1;
}elseif(days/7>1){
intday=days.intValue();
if(day%7>0){
returnday/7+1;
}else{
returnday/7;
}
}elseif((days/7)==0){
return0;
}else{
// 负数返还 null
returnnull;
}
}
returnnull;
}
来源: http://www.phperz.com/article/18/0222/359140.html