『壹』 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也是理所當然

總體思路:

  1. 由於節假日每年在變,所以需要羅列出所有的節假日集合A

  2. 生成2016-01-01 至 2016-05-01所有的日期,生成日期集合B

  3. 從B中過濾掉A中的節假日

  4. 從B中過濾掉周六周日

  5. 最後把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