zoukankan      html  css  js  c++  java
  • 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节假日");
    		} 
    	}
    
    }
    

      

  • 相关阅读:
    【Spring学习随笔】1. Spring的体系结构
    MySQL图形化安装相关总结(含软件分享)
    Spring Bean 基于注解的装配
    vue的三种图片引入方式
    wx.navigateTo({ url: '', }) 跳转无效问题
    JDK环境变量配置
    如何实现Vue底部按钮点击加载更多
    Java Web学习路线
    百度地图循环添加标注,并循环为鼠标悬停标注时信息窗口问题解决
    mvc jquery 修改 viewbag
  • 原文地址:https://www.cnblogs.com/Mr-Y1907/p/14734786.html
Copyright © 2011-2022 走看看