public long dayDiffsInWorkingDays()

in gepard-core/src/main/java/com/epam/gepard/helper/DateHelper.java [121:147]


    public long dayDiffsInWorkingDays(Date start, Date end) {
        //work with start date
        Calendar c1 = GregorianCalendar.getInstance();
        c1.setTime(start);
        int w1 = c1.get(Calendar.DAY_OF_WEEK);
        c1.add(Calendar.DAY_OF_WEEK, -w1 + 1);

        //work with end date
        Calendar c2 = GregorianCalendar.getInstance();
        c2.setTime(end);
        int w2 = c2.get(Calendar.DAY_OF_WEEK);
        c2.add(Calendar.DAY_OF_WEEK, -w2 + 1);

        //difference in days
        long days = (c2.getTimeInMillis() - c1.getTimeInMillis()) / ONE_DAY_IN_MILLISECS;

        //remove Saturdays and Sundays
        long daysWithoutSunday = days - (days * 2 / DAYS_IN_WEEK);

        if (w1 == Calendar.SUNDAY) {
            w1 = Calendar.MONDAY;
        }
        if (w2 == Calendar.SUNDAY) {
            w2 = Calendar.MONDAY;
        }
        return daysWithoutSunday - w1 + w2;
    }