📄 dateinterval.java.svn-base
字号:
package com.onet.autobill.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Date;
/**
* 类功能说明(请修改)
*
* @author sandyen
* @version 1.0
*/
public class DateInterval {
/**
* 取得两个时间段中所有的间隔为1天的时间集合
*
* @param startDate
* Date 开始时间
* @param endDate
* Date 结束时间
* @return List 所有间隔为1天的时间结果集合
*/
private static List<String> getDiffDateList(Date startDate, Date endDate) {
List<String> dateList = new ArrayList<String>();
HashSet set = new HashSet();
if (endDate.before(startDate)) {
return dateList;
}
int diffDate = getDiffDate(startDate, endDate);
Calendar cal = GregorianCalendar.getInstance();
DateFormat df = new SimpleDateFormat("yyyyMMdd");
cal.setTime(startDate);
dateList.add(df.format(startDate));
int year = 0;
int mon = 0;
int date = 0;
String intervalDate = null;
for (int i = 0; i < diffDate; i++) {
year = cal.get(Calendar.YEAR);
mon = cal.get(Calendar.MONTH);
date = cal.get(Calendar.DATE);
//date = date + 1;
cal.set(year, mon, date);
intervalDate = df.format(cal.getTime());
dateList.add(intervalDate);
}
// if(dateList.size()>=2){
// for(int i = 0; i<dateList.size();i++){
// for(int j = 0;j<dateList.size()-i;j++){
// System.out.println(i+"HHHHHHHHHH"+j);
// if(dateList.get(i).equals(dateList.get(j))){
// dateList.remove(i);
// }
// }
// }
// }
Iterator it =dateList.iterator();
while(it.hasNext()){
set.add(it.next());
}
dateList.clear();
it = set.iterator();
while(it.hasNext()){
dateList.add((String)(it.next()));
}
return dateList;
}
/**
* 取得两个时间段中所有的间隔为1天的时间集合
*
* @param startDateStr
* String 开始时间
*
* @param endDateStr
* String 结束时间
*
* @return List 所有间隔为1天的时间结果集合 格式为“yyyyMMdd”
*
*/
public static List<String> getDiffDateList(String startDateStr, String endDateStr) {
if (startDateStr == null || endDateStr == null) {
List<String> timeList = new ArrayList<String>();
return timeList;
}
DateFormat df = new SimpleDateFormat("yyyyMMdd");
try {
Date startDate = df.parse(startDateStr);
Date endDate = df.parse(endDateStr);
return getDiffDateList(startDate, endDate);
} catch (ParseException pe) {
throw new RuntimeException(
"The String doesn't convert to a Date yyyyMMdd HH:mm"
+ pe.getMessage());
}
}
/**
* 取得两个时间段中所有的间隔为1天的时间集合
*
* @param startDateStr
* String 开始时间
*
* @param endDateStr
* String 结束时间
*
* @return dateArr String[] 所有间隔为1天的时间结果集合 格式为“yyyyMMdd”
*
*/
public static String[] getDiffDateArr(String startDateStr, String endDateStr) {
List<String> dateList = getDiffDateList(startDateStr, endDateStr);
String[] dateArr = (String[]) dateList.toArray(new String[dateList
.size()]);
return dateArr;
}
/**
* 得到两个日期相隔的天数
*
* @param startDate
* Date 开始时间
*
* @param endDate
* Date 结束时间
*
* @return int 相隔的天数
*
*/
private static int getDiffDate(Date startDate, Date endDate) {
int diffDate = (int) ((getMillisecond(endDate) / 86400000) - (int) (getMillisecond(startDate) / 86400000));
return diffDate;
}
/**
* 返回一个Date与计算机默认起始日期间的毫秒数
*
* @param date
* Date 日期
*
* @return long
*/
private static long getMillisecond(Date date) {
return date.getTime()
+ Calendar.getInstance().get(Calendar.ZONE_OFFSET)
+ Calendar.getInstance().get(Calendar.DST_OFFSET);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -