java判断日期为是否为节假日、双休日、工作日

package com.ruoyi.common.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;
/**
 * @author 
 * @date 2020/7/30 8:54
 * 判断当前是否为节假日: 0 上班 1周末 2节假日
 */
public class HolidayUtil {
    /**
     * 判断当前是否为节假日: 0 上班 1周末 2节假日
     * @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 void main(String[] args) {
		// 处理节假日
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");

        String httpArg = f.format(new Date());

        String jsonResult = HolidayUtil.request(httpArg);
        //String jsonResult = HolidayUtil.request("20210502");
        // 0 上班 1周末 2节假日

        if ("0".equals(jsonResult)) {
            System.out.println("0上班");
        }

        if ("1".equals(jsonResult)) {
            System.out.println("1周末");
        }

        if ("2".equals(jsonResult)) {
            System.out.println("2节假日");
        }
    }
}

判断当前日期是否节假日双休日,可以使用Java 8中的java.time包中的类和方法。具体可以按照以下步骤进行操作: 1. 首先,需要创建一个LocalDate对象表示当前日期,可以使用now()方法获取当前日期: ```java LocalDate today = LocalDate.now(); ``` 2. 判断当前日期是否节假日,可以使用第三方API或者自己实现一个判断方法。这里以自己实现为例,假设节假日包括元旦节、春节、清明节、劳动节、端午节、中秋节、国庆节。可以定义一个方法,判断当前日期是否在这些节假日之一: ```java public static boolean isHoliday(LocalDate date) { int month = date.getMonthValue(); int day = date.getDayOfMonth(); if ((month == 1 && day == 1) || // 元旦节 (month == 2 && day >= 4 && day <= 10) || // 春节 (month == 4 && day >= 4 && day <= 6) || // 清明节 (month == 5 && day >= 1 && day <= 3) || // 劳动节 (month == 6 && day >= 12 && day <= 14) || // 端午节 (month == 9 && day >= 19 && day <= 21) || // 中秋节 (month == 10 && day >= 1 && day <= 7)) { // 国庆节 return true; } return false; } ``` 3. 判断当前日期是否双休日,可以使用DayOfWeek枚举类的值来判断。如果当前日期是星期六或星期日,则认为是双休日。可以使用getDayOfWeek()方法获取当前日期的星期几: ```java public static boolean isWeekend(LocalDate date) { DayOfWeek dayOfWeek = date.getDayOfWeek(); return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY; } ``` 4. 最后,可以通过调用上面定义的方法来判断当前日期是否节假日双休日: ```java if (isHoliday(today)) { System.out.println("今天节假日!"); } else if (isWeekend(today)) { System.out.println("今天双休日!"); } else { System.out.println("今天工作日!"); } ``` 需要注意的是,判断节假日需要根据具体情况调整,例如春节日期会根据农历而有所不同。同时,如果需要判断其他国家或地区的节假日,也需要根据当地情况进行调整。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值