java 過濾 節假日 和周六日


工具類先上 

 

package com.cms.util;

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.Calendar;
import java.util.Date;

public class HolidayUtil {

	/**
	 * @param urlAll
	 *            :請求接口
	 * @param httpArg
	 *            :參數
	 * @return 返回結果
	 */
	public static String request(String httpArg) {      
	    String httpUrl = "http://tool.bitefu.net/jiari/";
	    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);
	        }
	        reader.close();
	        result = sbf.toString();
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	    return result;
	}
	// 調的是這個方法
	public static Date getHolidayDate(Date date,Calendar c) {
		//計算節假日
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
			String httpArg = sdf.format(date);
			String jsonResult = request(httpArg); 
			//如果是周六周日 和節假日 后放一天
			//此接口 國家法定調休日 會放在上班里 無論這天是否周末
			//所以只可以判斷 節假日 不來判斷  是否周末
			// 0 上班  1周末 2節假日 
			if ("2".equals(jsonResult)) { 
				// 為國家法定節假日   自動 加一天 並 回調方法
				 c.setTime(date);  
	             c.add(Calendar.DAY_OF_MONTH, 1); 
	             date = c.getTime();
	            return getHolidayDate(date,c);
			}else { //判斷是否周末 如果是周末 日期加一回調 反之 返回當前計算的時間
				
				SimpleDateFormat dateFm = new SimpleDateFormat("E");
				String currSun = dateFm.format(date);
				if (currSun.equals("星期六")) {
					 c.setTime(date);  
		             c.add(Calendar.DAY_OF_MONTH, 2); 
		             date = c.getTime();
		            return getHolidayDate(date,c);
				} else if (currSun.equals("星期日")) {
					 c.setTime(date);  
		             c.add(Calendar.DAY_OF_MONTH, 1); 
		             date = c.getTime();
		            return getHolidayDate(date,c);
				} 
			} 
			return date; 
	}
	
	
	public static void main(String[] args) {
		// 處理節假日 
		String httpArg = "20210505"; 
		/*SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd"); 
		httpArg = f.format(new Date());*/
		String jsonResult = HolidayUtil.request(httpArg); 
		// 0 上班  1周末 2節假日 
		if ("0".equals(jsonResult)) { 
			//return resultObject.getFailResult("上班"); 
			System.out.println("0上班");
		}
		if ("1".equals(jsonResult)) { 
			//return resultObject.getFailResult("1周末"); 
			System.out.println("1周末");
		} 
		if ("2".equals(jsonResult)) { 
			//return resultObject.getFailResult("");
			System.out.println("2節假日");
		} 
	}

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM