📄 identitydate.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 + -