你好,这个功能一般是使用一个专门的数据库表把一年的节假日都存进去来判断的。国家每年都会提前发布一年的节假日,然后我们再导入到数据库。而特殊的做法应该可以接入百度之类的接口。希望能帮到你。
我们提供的服务有:成都做网站、成都网站建设、微信公众号开发、网站优化、网站认证、吴川ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的吴川网站制作公司
package com.qms.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class holiday {
/**
* @param urlAll
* :请求接口
* @param httpArg
* :参数
* @return 返回结果
*/
public static String request( String httpArg) {
String httpUrl="ay.php";
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?d=" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
MapString,Object map=JsonUtil.toMap(result);
String res=(String)map.get(httpArg);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
//判断今天是否是工作日 周末 还是节假日
SimpleDateFormat f=new SimpleDateFormat("yyyyMMdd");
String httpArg=f.format(new Date());
System.out.println(httpArg);
String jsonResult = request(httpArg);
MapString,Object map=JsonUtil.toMap(jsonResult);
String res=(String)map.get(f.format(new Date()));
System.out.println(res);
//0 上班 1周末 2节假日
}
}
没有此方法,只能判断是星期几。因为中国的节假日是农历!而java不是中国人搞出来的!。
public static boolean isWeekend(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int result = cal.get(Calendar.WEEK_OF_MONTH);
if (result == Calendar.SATURDAY || result == Calendar.SUNDAY) {
return true;
}
return false;
}
这段代码只是判断是不是周末,节假日的话只能通过某些数据配置来判断了。节假日是没法计算的。