⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateinterval.java.svn-base

📁 自动导入文件到数据库,用于无法实时入库,需要在特定时间大批量入库的程序
💻 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 + -