gpt4 book ai didi

java - 如何减去x个工作日

转载 作者:行者123 更新时间:2023-12-04 05:15:07 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
joda time - add weekdays to date



如何使用Joda库减去一定数量的 工作日 (即不包括周末)从一个日期?

如果输入日期是 2013 年 1 月 14 日(星期一)并且我减去 1 天,我希望结果是 2013 年 1 月 11 日(星期五)。我怎样才能做到这一点?

最佳答案

可能无法直接使用 Joda 库执行此操作,但您可以编写自己的 Java 功能。在以下示例中,subtractWeekdays(d, num)方法滚动日期d返回给定 num的工作日。这个例子的输出是 Fri Jan 11 00:00:00 CST 2013根据需要。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class SimpleTest {
// NOTE: the input num must be positive.
public static Date subtractWeekdays(Date d, int num) {
int count = 0;
Calendar c = Calendar.getInstance();
c.setTime(d);

do {
c.add(Calendar.DAY_OF_YEAR, -1);
if(isWeekday(c.get(Calendar.DAY_OF_WEEK))) {
++count;
}
} while(count < num);

return c.getTime();
}

public static boolean isWeekday(int dayOfWeek) {
return ((dayOfWeek != Calendar.SATURDAY) && (dayOfWeek != Calendar.SUNDAY));
}

public static void main(String[] argv) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d, y");
Date d = dateFormat.parse("Jan 14, 2013");
Date d2 = subtractWeekdays(d, 1);
System.out.println(d2);
} catch(Exception ex) {}
}
}

关于java - 如何减去x个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385772/

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