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

📄 identitydate.java

📁 JAVA实现的酒店管理系统
💻 JAVA
字号:
package file1;

/*
 * @Author:黄顺武
 * Create Time:2008-1-24
 * Description:根据给定的两个日期参数,判断两个日期是否是同一天
 */
import java.util.Date;
import java.util.Calendar;
import java.util.StringTokenizer;

public class IdentityDate {
	private Date firstDate = null;
	private Date secondDate = null;

	public IdentityDate() {
	}

	public void setFirstDate(String firstDateStr) {
		this.firstDate = getDateValue(firstDateStr);
	}

	public void setFirstDate(Date firstDate) {
		this.firstDate = firstDate;
	}

	public Date getFirstDate() {
		return firstDate;
	}

	public void setSecondDate(String secondDateStr) {
		this.secondDate = getDateValue(secondDateStr);
	}

	public void setSecondDate(Date secondDate) {
		this.secondDate = secondDate;
	}

	public Date getSecondDate() {
		return secondDate;
	}

	public Date getDateValue(String dateStr) {// 给定字符串参数转化成日期值并返回
		Date dateGet = null;
		char divideChar = '0';
		int strLength = 0;
		if (dateStr != null) {
			strLength = dateStr.length();
		}
		for (int countBase = 0; countBase < strLength; countBase++) {
			if (!Character.isDigit(dateStr.charAt(countBase))) {
				divideChar = dateStr.charAt(countBase);// 得到分隔符
				break;
			}
		}
		if (divideChar != '0') {
			StringTokenizer st = new StringTokenizer(dateStr, divideChar + "");
			Calendar calendar = Calendar.getInstance();
			//设置默认值的意义:为了保证当字符串参数为年份或年月时算法的顺利执行
			calendar.set(Calendar.YEAR, 2007);//设置年份的默认值
			calendar.set(Calendar.MONTH, 01);//设置月份的默认值
			calendar.set(Calendar.DATE, 01);//设置日期的默认值
			int numberBase = 0;
			while (st.hasMoreTokens()) {//以下对默认值进行覆盖
				if (numberBase == 0) {
					calendar
							.set(Calendar.YEAR, Integer.valueOf(st.nextToken()));
					numberBase++;
				} else if (numberBase == 1) {
					calendar.set(Calendar.MONTH, Integer
							.valueOf(st.nextToken()) - 1);
					numberBase++;
				} else if (numberBase == 2) {
					calendar
							.set(Calendar.DATE, Integer.valueOf(st.nextToken()));
					numberBase++;
				} else {
					break;
				}
			}
			dateGet = calendar.getTime();
		}
		return dateGet;
	}

	public int isTheSameDate() {// 判断是否是同一天,是返回0,不是返回1
		return daysNotEqual();
	}

	public int daysNotEqual() {// 在两个日期参数都完成赋值后判断是否是同一天,是返回0,不是返回1
		if (firstDate.toString().equals(secondDate.toString())) {
			return 0;
		} else {
			if (firstDate.after(secondDate)) {
				Date thirdParty = firstDate;
				firstDate = secondDate;
				secondDate = thirdParty;
			}
			Calendar c1 = Calendar.getInstance();
			c1.setTime(firstDate);
			Calendar c2 = Calendar.getInstance();
			c2.setTime(secondDate);
			int day_gap = 0;
			for (int daysGap = 0;; daysGap++) {
				c1.add(Calendar.DATE, daysGap);
				if ((c1.getTime().toString()).equals((c2.getTime().toString()))) {
					day_gap = daysGap;
					break;
				}
			}
			return day_gap;
		}

	}

	public int isInTheSameMonth() {// 判断两个日期是否在同一个月,是返回0,不是返回1
		Calendar c1 = Calendar.getInstance();
		Calendar c2 = Calendar.getInstance();
		c1.setTime(firstDate);
		c2.setTime(secondDate);
		return (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR) && c1
				.get(Calendar.MONTH) == c2.get(Calendar.MONTH)) ? 0 : 1;

	}

	public int isInTheSameYear() {// 判断两个日期是否在同一年,是返回0,不是返回1
		Calendar c1 = Calendar.getInstance();
		Calendar c2 = Calendar.getInstance();
		c1.setTime(firstDate);
		c2.setTime(secondDate);
		return (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR)) ? 0 : 1;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -