java 算出下一个工作日_如何计算JAVA中两个不同日期之间的工作日(不包括周末)?...

我的要求是计算给定两个日期之间的天数,不包括星期六和星期日.

例:

Start date - 10/09/15 and End date 18/09/15

Result: 7

日期采用DD / MM / YY格式.

码:

import java.io.InputStreamReader;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Scanner;

public class DaysCounter {

private String startDate;

private String endDate;

public void calculateDate(){

@SuppressWarnings("resource")

Scanner in=new Scanner(new InputStreamReader(System.in));

System.out.println("Enter the starting date (DD/MM/YY) :");

startDate=in.next();

System.out.println("Enter the End date (DD/MM/YY) :");

endDate=in.next();

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

try

{

Calendar start = Calendar.getInstance();

start.setTime(sdf.parse(startDate));

Calendar end = Calendar.getInstance();

end.setTime(sdf.parse(endDate));

int workingDays = 0;

while(!start.after(end))

{

int day = start.get(Calendar.DAY_OF_WEEK);

if ((day != Calendar.SATURDAY) && (day != Calendar.SUNDAY))

workingDays++;

start.add(Calendar.DATE, 1);

}

System.out.println(workingDays);

}

catch(Exception e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

DaysCounter daysCounter=new DaysCounter();

daysCounter.calculateDate();

}

}

以下是上述代码的结果.

1 –

Enter the starting date (DD/MM/YY) :

14/09/15

Enter the End date (DD/MM/YY) :

20/09/15

5

2 –

Enter the starting date (DD/MM/YY) :

14/09/15

Enter the End date (DD/MM/YY) :

17/09/15

2

3 –

Enter the starting date (DD/MM/YY) :

31/08/15

Enter the End date (DD/MM/YY) :

30/09/15

21

如上面第一个例子所示,结果是正确的.

但是对于第二个例子,结果是不正确的,预期结果是4.

即使是第三个例子,结果也是不正确的.

即使我输入任何工作日和星期六之间的日期得到错误的结果.

请建议,应该对代码进行哪些更改.

谢谢.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值