您的位置:首页 > 其它

判断当前时间是否在限制时间段之内

2013-06-26 17:59 555 查看
/**
* 判断当前时间是否在限制时间段之内(是:返回true,否:返回false)
*
* @return
*/
public static boolean isLimitTime() {
boolean bool = false;
Date currentTime = com.born.sys.util.date.DateUtil.getDateHHObject();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String currentDateStr = sdf.format(currentTime);
String day = currentDateStr.substring(8, 10);
String monthEndDay = DateUtil.getEndDateOfMonth(sdf1
.format(currentTime));
if ("01".equals(day)) {
bool = true;
} else if ("02".equals(day)) {
String timeTemp = currentDateStr.substring(0, 10) + " 09:00:00";
try {
Date endTime = sdf.parse(timeTemp);
long interval = (currentTime.getTime() - endTime.getTime()) / 1000;// 秒
if (interval < 0) {
bool = true;
}
} catch (ParseException e) {
e.printStackTrace();
}
} else {
if (day.equals(monthEndDay.subSequence(8, 10))) {
String timeTemp = monthEndDay + " 22:00:00";
try {
Date endTime = sdf.parse(timeTemp);
long interval = (currentTime.getTime() - endTime.getTime()) / 1000;// 秒
if (interval > 0) {
bool = true;
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
return bool;
}

/**
* 获取今天日期是1号还是2号或者月末最后一天, 1日:1 2日:2 月末:3
*
* @return
*/
public static String getDayLimit() {
String reStr = "0";
Date currentTime = com.born.sys.util.date.DateUtil.getDateHHObject();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String currentDateStr = sdf.format(currentTime);
String day = currentDateStr.substring(8, 10);
String monthEndDay = DateUtil.getEndDateOfMonth(sdf1
.format(currentTime));
if ("01".equals(day)) {
reStr = "1";
} else if ("02".equals(day)) {
reStr = "2";
} else {
if (day.equals(monthEndDay.subSequence(8, 10))) {
reStr = "3";
}
}
return reStr;
}

/**
* 获取一个月的最后一天
*
* @param dat
* @return
*/
public static String getEndDateOfMonth(String date) {// yyyy-MM-dd
String str = date.substring(0, 8);
String month = date.substring(5, 7);
int mon = Integer.parseInt(month);
if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8
|| mon == 10 || mon == 12) {
str += "31";
} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
str += "30";
} else {
if (isLeapYear(date)) {
str += "29";
} else {
str += "28";
}
}
return str;
}

/**
* 判断是否润年
*
* @param ddate
* @return
*/
public static boolean isLeapYear(String ddate) {
Date d = com.born.sys.util.date.DateUtil.getDateHHObject();
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(d);
int year = gc.get(Calendar.YEAR);
if ((year % 400) == 0)
return true;
else if ((year % 4) == 0) {
if ((year % 100) == 0)
return false;
else
return true;
} else
return false;
}

boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。

把日期在你要的时间段内做比较就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: