gpt4 book ai didi

Java - 计算除节假日(周六和周日)之外的天数

转载 作者:行者123 更新时间:2023-12-02 11:33:13 33 4
gpt4 key购买 nike

我需要计算除节假日(周六和周日)之外的天数。例如我的开始日期是07/02/2018结束日期是15/02/2018 (采用 dd/MM/yyyy 格式)。我需要计算它们之间的工作日数。有人可以帮我吗?这是我的代码:

SimpleDateFormat dateformat3 = new SimpleDateFormat("dd/MM/yyyy");

//Date date12 = dateformat3.parse("17/07/1989");
String date1 = "11/07/2018";
String date2 = "20/07/2018";

// Date date2 = dateformat3.parse("15/10/2007");
Calendar startdate = Calendar.getInstance();
startdate.setTime(dateformat3.parse(date1));
Calendar enddate = Calendar.getInstance();
enddate.setTime(dateformat3.parse(date2));
while (!startdate.after(enddate)) {
int day = startdate.get(Calendar.DAY_OF_WEEK);
if ((day != Calendar.SATURDAY) && (day != Calendar.SUNDAY)) {
workingDays++;
}
}

我已尝试使用此代码,但没有显示任何结果。

最佳答案

你已经很接近了,只需要在 while 循环内增加开始日期。

public static void main(String[] args) throws Exception {
System.out.println(countDays("07/02/2018", "15/02/2018"));
}

public static int countDays(String startDate, String endDate) throws Exception {
int workingDays = 0;

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

Calendar startdate = Calendar.getInstance();
startdate.setTime(sdf.parse(startDate));
Calendar enddate = Calendar.getInstance();
enddate.setTime(sdf.parse(endDate));

while (!startdate.after(enddate)) {
int day = startdate.get(Calendar.DAY_OF_WEEK);
System.out.println(day);
if ((day != Calendar.SATURDAY) && (day != Calendar.SUNDAY)) {
workingDays++;
}

// increment start date, otherwise while will give infinite loop
startdate.add(Calendar.DATE, 1);
}

return workingDays;
}

如您所见,我从您那里提供的代码的唯一区别(除了删除硬编码值)是 startdate.add(Calendar.DATE, 1);

关于Java - 计算除节假日(周六和周日)之外的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133264/

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