判断是否为节假日和一天是否为周末

/**
     * 判断某一天是否是为节假日
     *
     * @param someDay
     * @return boolean false表示当前不是节假日(是上班日 )
     */

public boolean whetherFestival(java.util.Date someDate) {

        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd");
        String someDay = sdf.format(someDate);
        boolean flag = true;
        String sql = "from " + youTableName
                + " where sKey='festivalDay'";
        List<SunshineFestival> sunshineFestival = hibernateUtils
                .getHibernateTemplate().find(sql);
        if (null != sunshineFestival && sunshineFestival.size() > 0) {
            SunshineFestival festival = sunshineFestival.get(0);
            String festivalDay = festival.getsValue();// 从数据库中获取一年所有的节假日
            String f[] = festivalDay.split(",");// 把节假日字符串拆成数组
            // 依次判断当前日期是否为节假日, 若遇到等于某个节假日,跳出循环
            for (int i = 0; i < f.length; i++) {
                if (someDay.equals(f[i])) {
                    flag = true;// true表示当前是节假日
                    break;
                } else {
                    flag = false;
                }
            }
        }

        return flag;// 最终flag=false,表示当前不是节假日(是上班日 )

    }




/**
     * 判断某一天是否为周末
     *
     * @param date
     * @return flag为false时为工作日,为true时为周末
     * @throws Exception
     */
    public boolean getWeekday(java.util.Date date) throws Exception {// 必须yyyy-MM-dd
        SimpleDateFormat sdw = new SimpleDateFormat("E");
        String dateString = sdw.format(date);
        boolean flag = false;
        if (dateString.equals("星期六") || dateString.equals("星期日")) {
            flag = true;
        }
        return flag;
    }



SimpleDateFormat函数语法:
 
  G 年代标志符
  y 年
  M 月
  d 日
  h 时 在上午或下午 (1~12)
  H 时 在一天中 (0~23)
  m 分
  s 秒
  S 毫秒
  E 星期
  D 一年中的第几天
  F 一月中第几个星期几
  w 一年中第几个星期
  W 一月中第几个星期
  a 上午 / 下午 标记符
  k 时 在一天中 (1~24)
  K 时 在上午或下午 (0~11)
  z 时区

eg:

   SimpleDateFormat sdw = new SimpleDateFormat("E"); / /得到当前日期是星期几

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于计算请假时长,除去节假日周末的情况,可以按照以下步骤进行计算: 1. 首先,确定请假的起始日期和结束日期。 2. 使用Java中的日期类(如java.util.Date或java.time.LocalDate)来表示日期。 3. 使用Calendar类或LocalDate类来处理日期的加减运算和判断是否周末。 4. 遍历请假期间的每一天判断是否周末节假日,如果是则跳过计算。 5. 计算剩余的有效请假天数。 以下是一个简单的示例代码,用于计算请假时长并排除节假日周末: ```java import java.time.DayOfWeek; import java.time.LocalDate; public class LeaveCalculator { public static void main(String[] args) { LocalDate startDate = LocalDate.of(2022, 9, 1); LocalDate endDate = LocalDate.of(2022, 9, 10); int leaveDays = calculateLeaveDays(startDate, endDate); System.out.println("有效请假天数:" + leaveDays); } public static int calculateLeaveDays(LocalDate startDate, LocalDate endDate) { int leaveDays = 0; LocalDate currentDate = startDate; while (currentDate.isBefore(endDate) || currentDate.isEqual(endDate)) { if (currentDate.getDayOfWeek() != DayOfWeek.SATURDAY && currentDate.getDayOfWeek() != DayOfWeek.SUNDAY) { // 判断是否节假日,如果是则跳过计算 if (!isHoliday(currentDate)) { leaveDays++; } } currentDate = currentDate.plusDays(1); } return leaveDays; } public static boolean isHoliday(LocalDate date) { // 判断是否节假日的逻辑,根据实际情况进行实现 // 如果需要判断多个节假日,可以使用switch语句或if-else语句来判断 // 返回true表示是节假日,返回false表示不是节假日 return false; } } ``` 上述代码中,我们使用`calculateLeaveDays`方法来计算有效请假天数,通过遍历请假期间的每一天,并根据周末节假日判断来累计有效请假天数。`isHoliday`方法用于判断是否节假日,您可以根据实际情况来实现该方法。 希望这个示例能对您有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值