java节假日
『壹』 java判断当前日期是节假日还是工作日
你好,这个功能一般是使用一个专门的数据库表把一年的节假日都存进去来判断的。国家每年都会提前发布一年的节假日,然后我们再导入到数据库。而特殊的做法应该可以接入网络之类的接口。希望能帮到你。
『贰』 java调用百度接口判断日期是否是工作日 周末还是节假日
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();
Map<String,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);
Map<String,Object> map=JsonUtil.toMap(jsonResult);
String res=(String)map.get(f.format(new Date()));
System.out.println(res);
//0 上班 1周末 2节假日
}
}
『叁』 java 怎么计算一个月有多少节假日
你说的是星期六星期天?还是带上节假日???带上节假日的话,估计神也不行!
『肆』 使用java 排除 两个日期段中的 休息日和节假日 。在线等待中十万火急,求大牛帮忙,多谢了。。。。
时间处理,更方便和更易读的代码角度讲,肯定要用Java8的新date api啦,由于涉及到一系列日期,所以结合Java8的Stream也是理所当然
总体思路:
由于节假日每年在变,所以需要罗列出所有的节假日集合A
生成2016-01-01 至 2016-05-01所有的日期,生成日期集合B
从B中过滤掉A中的节假日
从B中过滤掉周六周日
最后把B中集合打印
结合思路,所见即所得的代码如下:
//所有节假日的日期集合,这里你可以自己添加,只写了两个仅供参考(完成思路1)
List<LocalDate>holidays=Arrays.asList(LocalDate.parse("2016-01-01"),LocalDate.parse("2016-05-01"));
//按照起始2016-01-01,每次递增一天的方式生成一个Stream
Stream.iterate(LocalDate.parse("2016-01-01"),localDate->localDate.plusDays(1))
//按照要求的时间间隔2016-01-01至2016-05-01中的实际间隔天数截断Stream(完成思路2)
.limit(ChronoUnit.DAYS.between(LocalDate.parse("2016-01-01"),LocalDate.parse("2016-05-01")))
//过滤其中的节假日(完成思路3)
.filter(localDate->!holidays.contains(localDate))
//过滤其中的周六
.filter(localDate->!DayOfWeek.SATURDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))
//过滤其中的周日(完成思路4)
.filter(localDate->!DayOfWeek.SUNDAY.equals(DayOfWeek.of(localDate.get(ChronoField.DAY_OF_WEEK))))
//打印最后结果(完成思路5)
.forEach(System.out::println);
打印的结果:
综上:结合新时间API的易用性+Stream处理集合的快捷性,写出代码还是很简洁的
『伍』 java怎么取得农历的节日
网上有农历来工具类,你可以自源己搜,以下供参考:
http://lixor.iteye.com/blog/1190599
而农历的节日比较多(24节气加上一些其他的节日)这些需要自己设置了
你可以加个方法,如:
public String isFestival(LunarCalendar lunar){
if(lunar.month == 1 && lunar.day == 1){
return "春节";
}else if ...
return "";
}
『陆』 一段可以跳过周末和节假日的java程序怎么写
publicstaticbooleanisWeekend(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
intresult=cal.get(Calendar.WEEK_OF_MONTH);
if(result==Calendar.SATURDAY||result==Calendar.SUNDAY){
returntrue;
}
returnfalse;
}
这段代码只是判断是不是周末,节假日的话只能通过某些数据配置来判断了。节假日是没法计算的。
『柒』 用java 进行日期计算,获取当前天+1天,周末节假日不算,在线等待中,十万火急……
迟来的答案
1.周末版本(不含节假日判断)
注意:最下面是使用的 递归算法
/**
*获得收益时间(获取当前天+1天,周末不算).
*
*@paramdate
*任意日期
*@returntheincomedate
*@throwsNullPointerException
*ifnull==date
*/
privateDategetIncomeDate(Datedate)throwsNullPointerException{
if(null==date){
thrownewNullPointerException("thedateisnullorempty!");
}
//对日期的操作,我们需要使用Calendar对象
Calendarcalendar=newGregorianCalendar();
calendar.setTime(date);
//+1天
calendar.add(Calendar.DAY_OF_MONTH,+1);
//判断是星期几
intdayOfWeek=calendar.get(Calendar.DAY_OF_WEEK);
DateincomeDate=calendar.getTime();
if(dayOfWeek==1||dayOfWeek==7){
//递归
returngetIncomeDate(incomeDate);
}
returnincomeDate;
}
测试方法:
@Test
publicvoidtestGetIncomeDate()throwsParseException{
Stringpattern="yyyy-MM-ddHH:mm:ss";
=newSimpleDateFormat(pattern);
System.out.println(simpleDateFormat.format(getIncomeDate(newDate())));
System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-07-3113:33:05"))));
System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-0113:33:05"))));
System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-0213:33:05"))));
System.out.println(simpleDateFormat.format(getIncomeDate(simpleDateFormat.parse("2014-08-0313:33:05"))));
}
输出结果:
2014-08-0113:48:09
2014-08-0113:33:05
2014-08-0413:33:05
2014-08-0413:33:05
2014-08-0413:33:05
注意:返回的是 时间+1的时间,精度是到毫秒 纳秒,如果有特殊需求,需要自己再处理下
2.周末+节假日版本
/**
*获得收益时间(获取当前天+1天,周末不算).
*
*@paramdate
*任意日期
*@returntheincomedate
*@throwsNullPointerException
*ifnull==date
*/
privateDategetIncomeDate(Datedate)throwsNullPointerException{
if(null==date){
thrownewNullPointerException("thedateisnullorempty!");
}
//对日期的操作,我们需要使用Calendar对象
Calendarcalendar=newGregorianCalendar();
calendar.setTime(date);
//+1天
calendar.add(Calendar.DAY_OF_MONTH,+1);
DateincomeDate=calendar.getTime();
if(isWeekend(calendar)||isHoliday(calendar)){
//递归
returngetIncomeDate(incomeDate);
}
returnincomeDate;
}
/**
*判断一个日历是不是周末.
*
*@paramcalendar
*thecalendar
*@returntrue,ifchecksifisweekend
*/
privatebooleanisWeekend(Calendarcalendar){
//判断是星期几
intdayOfWeek=calendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek==1||dayOfWeek==7){
returntrue;
}
returnfalse;
}
/**
*一个日历是不是节假日.
*
*@paramcalendar
*thecalendar
*@returntrue,ifchecksifisholiday
*/
privatebooleanisHoliday(Calendarcalendar){
Stringpattern="yyyy-MM-dd";
=newSimpleDateFormat(pattern);
StringdateString=simpleDateFormat.format(calendar.getTime());
//节假日这个可能不同地区,不同年份都有可能不一样,所以需要有个地方配置,可以放数据库,配置文件,环境变量等等地方
//这里以配置文件为例子
ResourceBundleresourceBundle=ResourceBundle.getBundle("holidayConfig");
Stringholidays=resourceBundle.getString("holiday");
String[]holidayArray=holidays.split(",");
booleanisHoliday=org.apache.commons.lang.ArrayUtils.contains(holidayArray,dateString);
returnisHoliday;
}
配置文件:
2014-08-0115:14:59
2014-08-0113:33:05
2014-08-0413:33:05
2014-08-0413:33:05
2014-08-0413:33:05
2014-10-0813:33:05
2014-10-0813:33:05
『捌』 java 如何判断日期是不是节假日
没有此方法,只能判断是星期几。因为中国的节假日是农历!而java不是中国人搞出来的!。
『玖』 java中calendar类怎么获得中国节假日
这个 得自己写吧
每年放假有些会不同的吧
http://bbs.csdn.net/topics/340211497