java - 使用 Java 仅获取工作日

标签 java

我有一个要求,比如当我将值插入到数据库的表中时,我需要设置目标日期,该日期与插入之日相距 3 个月。例如:如果我在 2013 年 11 月 9 日插入数据,我的目标日期将是 2014 年 2 月 9 日、2015 年 5 月 9 日等。我还将这些目标日期存储在相应的列中。为此,我使用日历函数并向当前实例添加 3 个月。现在,企业不希望我的目标日期是周六或周日。如果出现,我需要添加所需的天数,以便它在工作日出现。

关于我们如何做到这一点的任何建议

最佳答案

从你已经知道的事情开始。您知道可以使用日历来添加/减去值并生成结果值......

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.DATE, 9);
cal.set(Calendar.MONTH, Calendar.NOVEMBER);
cal.set(Calendar.YEAR, 2013);
System.out.println("Start at " + cal.getTime());

cal.add(Calendar.MONTH, 3);
System.out.println("End at " + cal.getTime());

哪个输出...

Start at Sat Nov 09 00:00:00 EST 2013
End at Sun Feb 09 00:00:00 EST 2014

现在,您需要使用这个概念来移动这一天,直到它不是周末。您可以使用 Calendar.DAY_OF_WEEK 获取“日”名称,然后根据您的业务规则在 Calendar.DATE 中添加或减去一天,例如...

while (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
    cal.add(Calendar.DATE, 1);
}
System.out.println("Should end at " + cal.getTime());

这将(基于前面的示例)输出...

Should end at Mon Feb 10 00:00:00 EST 2014

仔细看看Calendar了解更多详情

关于java - 使用 Java 仅获取工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286947/

相关文章:

java - 使用 name 或 id 在 hashmap 中搜索

java - 使用反射和泛型时发出警告

java - 什么条件导致对象实例化返回null?

java - 我收到了我认为是数组的语法错误,不知道它想要修复什么

Java继承与递归

java - 如何在eclipse中的可执行.jar文件中包含资源文件夹?

java - Heroku 和 Java : how to set utf-8 as the default encoding postgresql

java - 从 Spring 访问普通 Java 类中的 HttpServletRequest 对象

java - 如何将变量声明为常量数组的元素?

java - 如何配置java接受自签名小程序而不显示确认消息