指定日期判断是否节假日

最近工作需要定时器发布任务,但是定时器发布任务是指定日期,有时候涉及到节假日,这里就需要过滤掉节假日了,所以二话不说直接上代码

code=2调休    code=1正常的周六日   code=0工作日
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
import javax.net.ssl.*;
import java.io.*;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.URL;
/*
* 判断当前时间是不是工作日
* */
public  Boolean getData(){
    SimpleDateFormat dft2 = new SimpleDateFormat("yyyyMMdd");
    String newDate=dft2.format(new Date());
    String  addess = "http://api.goseek.cn/Tools/holiday?date="+newDate;
    URL url = null;
    HttpURLConnection httpConn = null;
    BufferedReader in = null;

    StringBuffer sb = new StringBuffer();
    try{
        url = new URL(addess);
        in = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8") );
        String str = null;
        while((str = in.readLine()) != null) {
            sb.append( str );
        }
    } catch (Exception ex) {
    } finally{
        try{
            if(in!=null) {
                in.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    String  data =sb.toString();
    JSONObject json =  getjson(data);
    String value=json.get("data").toString();
    System.out.println(value);
    if(value.equals("0"))
        return true;
    else
        return false;
}
//json串转化为json对象
public  JSONObject getjson(String data) {
    JSONObject json = JSONObject.fromObject(data);
    return json;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 Java 实例,可以用来判断日期是否为节假日、双休日、调休日: ```java import java.time.DayOfWeek; import java.time.LocalDate; public class HolidayChecker { // 节假日日期列表,这里只列出了部分节假日日期,可以根据实际情况进行补充 private static final String[] HOLIDAYS = { "2022-01-01", // 元旦 "2022-02-01", // 春节 "2022-02-02", "2022-02-03", "2022-04-05", // 清明节 "2022-05-01", // 劳动节 "2022-06-01", // 儿童节 "2022-09-21", // 中秋节 "2022-10-01", // 国庆节 "2022-10-02", "2022-10-03", "2022-10-04", "2022-10-05", "2022-10-06", "2022-10-07" }; /** * 判断指定日期是否为节假日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为节假日 */ public static boolean isHoliday(String date) { for (String holiday : HOLIDAYS) { if (date.equals(holiday)) { return true; } } return false; } /** * 判断指定日期是否为双休日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为双休日 */ public static boolean isWeekend(String date) { LocalDate localDate = LocalDate.parse(date); DayOfWeek dayOfWeek = localDate.getDayOfWeek(); return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY; } /** * 判断指定日期是否为调休日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为调休日 */ public static boolean isAdjustRestDay(String date) { LocalDate localDate = LocalDate.parse(date); DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // 判断是否为周一到周五的工作日,如果是则需要判断是否为调休日 if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) { // 调休日为节假日前后的工作日,需要判断前一天和后一天是否为节假日 LocalDate prevDate = localDate.minusDays(1); LocalDate nextDate = localDate.plusDays(1); return isHoliday(prevDate.toString()) || isHoliday(nextDate.toString()); } return false; } public static void main(String[] args) { String date = "2022-01-01"; System.out.println(date + "是否为节假日:" + isHoliday(date)); System.out.println(date + "是否为双休日:" + isWeekend(date)); System.out.println(date + "是否为调休日:" + isAdjustRestDay(date)); } } ``` 在这个例子中,我们使用了 Java 8 中的 LocalDate 类来处理日期,并使用 DayOfWeek 类来获取星期几。在 isHoliday() 方法中,我们使用一个字符串数组来存储节假日日期列表,并通过循环来判断指定日期是否为节假日。在 isWeekend() 方法中,我们使用 DayOfWeek 类来判断指定日期是否为周六或周日。在 isAdjustRestDay() 方法中,我们判断指定日期是否为周一到周五的工作日,如果是,则判断前一天和后一天是否为节假日来确定是否为调休日。最后,在 main() 方法中,我们演示了如何使用这些方法来判断指定日期是否为节假日、双休日、调休日。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值