/**
* 判断某一天是否是为节假日
*
* @param someDay
* @return boolean false表示当前不是节假日(是上班日 )
*/
public boolean whetherFestival(java.util.Date someDate) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd");String someDay = sdf.format(someDate);
boolean flag = true;
String sql = "from " + youTableName
+ " where sKey='festivalDay'";
List<SunshineFestival> sunshineFestival = hibernateUtils
.getHibernateTemplate().find(sql);
if (null != sunshineFestival && sunshineFestival.size() > 0) {
SunshineFestival festival = sunshineFestival.get(0);
String festivalDay = festival.getsValue();// 从数据库中获取一年所有的节假日
String f[] = festivalDay.split(",");// 把节假日字符串拆成数组
// 依次判断当前日期是否为节假日, 若遇到等于某个节假日,跳出循环
for (int i = 0; i < f.length; i++) {
if (someDay.equals(f[i])) {
flag = true;// true表示当前是节假日
break;
} else {
flag = false;
}
}
}
return flag;// 最终flag=false,表示当前不是节假日(是上班日 )
}
/**
* 判断某一天是否为周末
*
* @param date
* @return flag为false时为工作日,为true时为周末
* @throws Exception
*/
public boolean getWeekday(java.util.Date date) throws Exception {// 必须yyyy-MM-dd
SimpleDateFormat sdw = new SimpleDateFormat("E");
String dateString = sdw.format(date);
boolean flag = false;
if (dateString.equals("星期六") || dateString.equals("星期日")) {
flag = true;
}
return flag;
}
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
eg:
SimpleDateFormat sdw = new SimpleDateFormat("E"); / /得到当前日期是星期几