我有一个要求,例如当我将值插入数据库中的表时,我需要设置与插入之日相隔 3 个月的目标日期。例如:如果我在 2013 年 11 月 9 日插入数据,我的目标日期将是 2014 年 2 月 9 日、2015 年 5 月 9 日等等。我也将这些目标日期存储在相应的列中。为此,我使用日历功能并为当前实例添加 3 个月。现在企业不希望我的目标日期在星期六或星期日到来。如果它来了,我需要添加所需的日期,以便它在工作日到来。
关于我们如何做到这一点的任何建议
我有一个要求,例如当我将值插入数据库中的表时,我需要设置与插入之日相隔 3 个月的目标日期。例如:如果我在 2013 年 11 月 9 日插入数据,我的目标日期将是 2014 年 2 月 9 日、2015 年 5 月 9 日等等。我也将这些目标日期存储在相应的列中。为此,我使用日历功能并为当前实例添加 3 个月。现在企业不希望我的目标日期在星期六或星期日到来。如果它来了,我需要添加所需的日期,以便它在工作日到来。
关于我们如何做到这一点的任何建议
从你已经知道的开始。您知道您可以使用 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
获取更多详细信息