0

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

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

4

2 回答 2

2

从你已经知道的开始。您知道您可以使用 aCalendar向/从添加/减去值并生成结果值....

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获取更多详细信息

于 2013-10-10T04:19:45.320 回答
0
于 2017-05-08T19:19:07.387 回答