您的位置:首页 > 文旅 > 美景 > 使用java代码取本月第一个工作日

使用java代码取本月第一个工作日

2024/10/6 10:42:21 来源:https://blog.csdn.net/ProGram_Java521/article/details/140294834  浏览:    关键词:使用java代码取本月第一个工作日

根据参数或当前月,获取本月第一个工作日

文章目录

  • 根据参数或当前月,获取本月第一个工作日
  • 前言
  • 一、根据当前日期获取当前月的第一个工作日
  • 二、根据参数日期,获取参数月的第一个工作日。
  • 总结


前言

这里我们列举两个方法:
1、没有参数,根据当前日期取当前月的第一个工作日;
2、根据参数日期,获取参数月的第一个工作日。


提示:以下是本篇文章正文内容,下面案例可供参考

一、根据当前日期获取当前月的第一个工作日

import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.*;public static String getFirstWorkday(){Calendar cal = Calendar.getInstance();// 获取当前日期cal.add(Calendar.MONTH, 0);cal.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);//huo获取星期几,1代表星期日,2代表星期一,以此类推// 如果当前日期是周六或周日,则取下个周一,否则为当前日期if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {LocalDate localDate = cal.getTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();LocalDate firstWorkday = localDate.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));return firstWorkday.toString();}return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
}

二、根据参数日期,获取参数月的第一个工作日。

import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.*;public static String getFirstWorkday(Date date){Calendar cal = Calendar.getInstance();// 获取当前日期cal.setTime(date);cal.add(Calendar.MONTH, 0);cal.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);//huo获取星期几,1代表星期日,2代表星期一,以此类推// 如果当前日期是周六或周日,则取下个周一,否则为当前日期if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {LocalDate localDate = cal.getTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();LocalDate firstWorkday = localDate.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));return firstWorkday.toString();}return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
}

总结

以上就是今天要讲的内容,需要注意的是,必须判断当月第一天是否为工作日,如果直接使用if中的方法获取本月第一个工作日,有可能会获取到下周的第一个工作日。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com