日期相关转换

public static String getWeekDay(String date, String type) throws ParseException {
		String[] sWeekDates = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
		String[] sWeekDatesE = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
		Calendar cal = Calendar.getInstance();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
		cal.setTime(formatter.parse(date));
		if (type.equals("2"))
			return sWeekDates[cal.get(Calendar.DAY_OF_WEEK) - 1];
		else if (type.equals("3"))
			return sWeekDatesE[cal.get(Calendar.DAY_OF_WEEK) - 1];
		else
			return String.valueOf(cal.get(Calendar.DAY_OF_WEEK) - 1);
	}


传入的日期格式为YYYY/MM/DD

type="1" 输出数字格式1,2,3,4,5,6,7

type="2" 输出中文,星期一等

type="3" 输出英文等

 

获得两个日期之间的天数

	public static int getDays(String sBeginDate, String sEndDate) {
		Date startDate = java.sql.Date.valueOf(sBeginDate.replace('/', '-'));
		Date endDate = java.sql.Date.valueOf(sEndDate.replace('/', '-'));

		int iDays = (int) ((endDate.getTime() - startDate.getTime()) / 86400000L);
		return iDays;
	}


 

获得两个日期之间的月数,向下取整

public static int getMonths(String beginDate1, String endDate1) throws ParseException {
		Date beginDate = getDate(beginDate1);
		Date endDate = getDate(endDate1);
		Calendar former = Calendar.getInstance();
		Calendar latter = Calendar.getInstance();
		former.clear();
		latter.clear();
		boolean positive = true;
		if (beginDate.after(endDate)) {
			former.setTime(endDate);
			latter.setTime(beginDate);
			positive = false;
		} else {
			former.setTime(beginDate);
			latter.setTime(endDate);
		}

		int monthCounter = 0;
		while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR) || former.get(Calendar.MONTH) != latter.get(Calendar.MONTH)) {
			former.add(Calendar.MONTH, 1);
			monthCounter++;
		}

		if (positive)
			return monthCounter;
		else
			return -monthCounter;
	}

获得两个日期之间的月数,向上取整

public static int getUpMonths(String date1, String date2) throws Exception {
		String beginDate = "";
		String endDate = "";
		int months_Between = 0;
		if (date1.equals(date2)) {
			return months_Between;
		} else if (date1.compareTo(date2) > 0) {
			endDate = date1;
			beginDate = date2;
		} else {
			beginDate = date1;
			endDate = date2;
		}
		Calendar beginCalendar = Calendar.getInstance();
		beginCalendar.setTime(getDate(beginDate));

		Calendar endCalendar = Calendar.getInstance();
		endCalendar.setTime(getDate(endDate));

		while (beginCalendar.get(Calendar.YEAR) != endCalendar.get(Calendar.YEAR)
				|| beginCalendar.get(Calendar.MONTH) != endCalendar.get(Calendar.MONTH)) {
			beginCalendar.add(Calendar.MONTH, 1);
			months_Between++;
		}
		if (!monthEnd(beginDate)) {
			String beginDays = beginDate.substring(8);
			String endDays = endDate.substring(8);
			if (endDays.compareTo(beginDays) > 0) {
				months_Between++;
			}
		}
		return months_Between;
	}


取两个日期之间的年数,向下取整

public static int getYears(String beginDate1, String endDate1) throws ParseException {
		Date beginDate = getDate(beginDate1);
		Date endDate = getDate(endDate1);
		Calendar former = Calendar.getInstance();
		Calendar latter = Calendar.getInstance();
		former.clear();
		latter.clear();
		boolean positive = true;
		if (beginDate.after(endDate)) {
			former.setTime(endDate);
			latter.setTime(beginDate);
			positive = false;
		} else {
			former.setTime(beginDate);
			latter.setTime(endDate);
		}

		int yearCounter = 0;
		while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR)) {
			former.add(Calendar.YEAR, 1);
			yearCounter++;
		}

		if (positive)
			return yearCounter;
		else
			return -yearCounter;
	}


取两个日期之间的年数,向上取整

public static int getUpYears(String beginDate1, String endDate1) throws ParseException {
		Date beginDate = getDate(beginDate1);
		Date endDate = getDate(endDate1);
		Calendar former = Calendar.getInstance();
		Calendar latter = Calendar.getInstance();
		former.clear();
		latter.clear();
		boolean positive = true;
		if (beginDate.after(endDate)) {
			former.setTime(endDate);
			latter.setTime(beginDate);
			positive = false;
		} else {
			former.setTime(beginDate);
			latter.setTime(endDate);
		}

		int yearCounter = 0;
		while (former.get(Calendar.YEAR) != latter.get(Calendar.YEAR)) {
			former.add(Calendar.YEAR, 1);
			yearCounter++;
		}

		// 当天数前者小于后者时才加一,防止少计算一年
		if (positive && beginDate1.substring(5).compareTo(endDate1.substring(5)) < 0) {
			yearCounter++;
		} else if (!positive && beginDate1.substring(5).compareTo(endDate1.substring(5)) > 0) {
			yearCounter++;
		}

		if (positive)
			return yearCounter;
		else
			return -yearCounter;
	}


日期比较

	public static int compareDate(String date1, String date2) throws ParseException {
		Date date1d = DateFunctions.getDate(date1);
		Date date2d = DateFunctions.getDate(date2);
		if (date1d.after(date2d))
			return 1;
		if (date1d.before(date2d))
			return -1;
		else
			return 0;
	}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值