当前位置: 首页 > 面试题库 >

使用java指向前一个工作日

戴嘉珍
2023-03-14
问题内容

我是使用java.calendar.api的新手。我想使用java指向给定日期的上一个工作日。但是,当我使用calendar.api操纵日期时,情况继续增加,因为我不得不考虑通常的周末和指向前一个月的指向,而且我还不得不考虑我所在地区的区域性假期……

例如:我必须考虑美国的假期,并指出之前的一天。

我有什么方法可以 定义自己的日历 并使用它,以便日期操作可以感知所有那些通常的更改?


问题答案:

虽然您应该考虑使用Joda Time库,但从 Java Calendar API开始:

public Date getPreviousWorkingDay(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);

    int dayOfWeek;
    do {
        cal.add(Calendar.DAY_OF_MONTH, -1);
        dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
    } while (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY);

    return cal.getTime();
}

仅考虑周末。您必须添加其他支票才能处理您考虑放假的日子。例如,你可以添加|| isHoliday(cal)while条件。然后实现该方法,如下所示:

public boolean isHoliday(Calendar cal) {
    int year = cal.get(Calendar.YEAR);
    int month = cal.get(Calendar.MONTH) + 1;
    int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

    if (month == 12 && dayOfMonth == 25) {
        return true;
    }

    // more checks

    return false;
}


 类似资料:
  • 问题内容: 我有一个在工作日(周一至周五)运行的sis软件包。如果我在星期二(background(DB))收到文件,则它需要前一个工作日的日期并进行一些交易。如果我在星期五运行工作,则必须获取星期一日期并处理交易。 我已使用以下查询获取之前的营业日期 如果我执行此查询,我将获得昨天的Transactios的结果。如果我在星期一运行相同的查询,则必须获取星期五的交易而不是星期日。 问题答案: 我更

  • 我试图创建一个Kubernetes吊舱与一个容器,其中有两个外部卷安装在它上。My.yml pod文件是: 我正在使用持久化卷和持久化卷声明,例如: 我试着从头开始重新创建一切,但什么都没有改变。此外,从pod描述来看,这两个卷似乎都正确地装入了: 任何帮助都很感激。谢了。

  • setCurrentSheetIsFirst(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('hide.xlsx', 'sheet1') // 初始化文件,同时初始化第一张工作表 sheet1 ->header(['sh

  • 问题内容: 詹金斯(哈德森)是否有办法从另一个工作中禁用一个工作? 基本上,我们有一个进行标准构建/测试的构建环境。我们还使用相同的Jenkins实例来执行其他一些操作,例如自动安装产品的新版本(某些自动化测试需要此功能)。当我们运行某些“额外”作业时,我们希望暂时禁用“标准”作业(然后在以后自动启用它们)。 理想情况下,在作业上会有一些额外的构建步骤,例如“禁用XYZ作业”。或者,如果有通过AN

  • 我在研究空间日期时遇到了一个问题。我有一个包含列的表:对象id及其坐标(纬度和经度,数据类型是几何体)。我需要按照从西北到东南方向的坐标对这些数据进行排序。我该怎么做?我想我当然需要使用“orderby”和索引。但是哪一个和如何?