您的位置:首页 > 编程语言 > Java开发

Joda

2017-11-24 14:50 357 查看
/**
* 计算两个日期之间相差的天数
*
* @author liuchao
* @since 19/10/2017
*/
public static int daysBetween(Date startDate, Date endDate) {
Period period=new Period(startDate.getTime(),endDate.getTime(),PeriodType.days());
return period.getDays();
}

/**
* 按照7天一个周期把一个时间段拆分成多个时间区间
*
* @author mayanjun
* @since 11/11/2017
*/
public static Collection<WeekSplit> splitWeek(Date beginDate, Date endDate) {
DateTime t1 = new DateTime(beginDate).withTime(0, 0, 0, 0);
DateTime t2 = new DateTime(endDate).withTime(0, 0, 0, 0);
Map<Integer, WeekSplit> splitMap = new HashMap<>();
for (DateTime ti = new DateTime(t1); ti.isBefore(t2) || ti.isEqual(t2); ti = ti.plusDays(1)) {
int week = ti.getWeekOfWeekyear();
WeekSplit split = splitMap.get(week);
if (split == null) {
split = new WeekSplit(week);
splitMap.put(week, split);
}
split.setDate(ti.toDate());
}
return splitMap.values();
}

/**
* 封装开始日期和截止日期
*
* @author mayanjun
* @since 11/11/2017
*/
public static class WeekSplit {
Date beginDate;
Date endDate;
int weekOfYear;

public WeekSplit(int weekOfYear) {
this.weekOfYear = weekOfYear;
}

public void setDate(Date date) {
if (beginDate == null) {
beginDate = date;
endDate = date;
} else {
endDate = date;
}
}

public Date getBeginDate() {
return beginDate;
}

public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}

public Date getEndDate() {
return endDate;
}

public void setEndDate(Date endDate) {
this.endDate = endDate;
}

public int getWeekOfYear() {
return weekOfYear;
}

public void setWeekOfYear(int weekOfYear) {
this.weekOfYear = weekOfYear;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  joda 日期 jdk