gpt4 book ai didi

java - 获取下一个有效日

转载 作者:行者123 更新时间:2023-12-01 15:26:30 25 4
gpt4 key购买 nike

我正在编写一个 Java 应用程序,我需要执行以下操作。

我必须避免一周中的两天(外部可配置),比如星期二和星期五来进行一些业务逻辑处理。我想知道下一个可用的日子。例如:如果今天是星期二,我应该将星期三作为下一个可用的,或者如果今天是星期四,那么下一个可用的应该是星期一。

有人可以指导我解决这个问题吗?这听起来很简单,但确实很棘手。

这是我到目前为止所做的

       List<String> exceptionDays = new ArrayList<String>();
exceptionDays.add("SUNDAY");
exceptionDays.add("MONDAY");
exceptionDays.add("FRIDAY");

Date today = new Date();

Calendar calendar = Calendar.getInstance();
calendar.setTime(today);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

if (dayOfWeek == Calendar.FRIDAY) {
calendar.add(Calendar.DATE, 3);
} else if (dayOfWeek == Calendar.SATURDAY) {
calendar.add(Calendar.DATE, 2);
} else {
calendar.add(Calendar.DATE, 1);
}
String strDateFormat = "E";
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);

strDateFormat = "EEEE";
sdf = new SimpleDateFormat(strDateFormat);

Date nextBusinessDay = calendar.getTime();
System.out.println(sdf.format(nextBusinessDay).toUpperCase());
if(exceptionDays.contains(sdf.format(nextBusinessDay).toUpperCase())){
if(sdf.format(nextBusinessDay).toUpperCase().equals("FRIDAY")){
calendar.add(Calendar.DATE, 3);
}else if(sdf.format(nextBusinessDay).toUpperCase().equals("SATURDAY")){
calendar.add(Calendar.DATE, 2);
} else
calendar.add(Calendar.DATE, 1);


nextBusinessDay = calendar.getTime();
}
DateFormat df = new SimpleDateFormat("dd-MMM-yy");
String format = df.format(nextBusinessDay.getTime());
System.out.println("Today : " + df.format(today));
try {
System.out.println("Next business day: " + df.parse(format));

System.out.println("Next business day: " + df.format(nextBusinessDay));

如果上面的逻辑看起来很笨拙,请忽略它。

最佳答案

简单使用日历

List<Integer>  avoidingDays = new ArrayList<Integer>();
avoidingDays.add(Calendar.MONDAY);
Calendar cal = Calendar.getInstance();
while(avoidingDays.contains(cal.get(Calendar.DAY_OF_WEEK)) ){cal.add(Calendar.DATE, 1}
return cal;

关于java - 获取下一个有效日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10072914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com