获取特定月份的工作日数

佛朗哥

我想获取特定月份的工作天数

就我而言,周末是星期五星期六

我使用此代码:

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

public class TestWeekDay {

    /**
     * @param args
     * @throws ParseException 
     */
    public static void main(String[] args) throws ParseException {

        // TODO Auto-generated method stub


        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        String dateInString = "01-07-2016";
        Date startDate = sdf.parse(dateInString);
        String dateInString2 = "31-07-2016";
        Date endDate = sdf.parse(dateInString2);
        calculateDuration(startDate,endDate);

    }



    public static int calculateDuration(Date startDate, Date endDate)
    {
      Calendar startCal = Calendar.getInstance();
      startCal.setTime(startDate);

      Calendar endCal = Calendar.getInstance();
      endCal.setTime(endDate);

      int workDays = 0;

      if (startCal.getTimeInMillis() > endCal.getTimeInMillis())
      {
        startCal.setTime(endDate);
        endCal.setTime(startDate);
      }

      do
      {
        startCal.add(Calendar.DAY_OF_MONTH, 1);
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.FRIDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
        {
          workDays++;
        }
      }
      while (startCal.getTimeInMillis() <= endCal.getTimeInMillis());

      return workDays;
    }

}

例如,当我测试7月时,我有22,正确的答案应该是21

蒂姆·比格莱森(Tim Biegeleisen)

我认为您的问题可能是由边界条件引起的,该边界条件导致评估每个月增加一天的时间尝试做星期检查当天第一你增加实际的前一天。

while (startCal.getTimeInMillis() <= endCal.getTimeInMillis()) {
    if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.FRIDAY &&
        startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {

        workDays++;
    }

    startCal.add(Calendar.DAY_OF_MONTH, 1);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取特定月份的工作日数

来自分类Dev

如何在Rails中查找特定月份的工作日数

来自分类Dev

计算日期之间的特定工作日数

来自分类Dev

PHP:获取每月的工作日数

来自分类Dev

根据月份和年份列计算工作日数-DAX

来自分类Dev

使用javascript和jQuery UI datepicker获取工作日数

来自分类Dev

如何从Swift中的系统获取工作日数组?

来自分类Dev

SQL获取两个日期之间的工作日数

来自分类Dev

熊猫从日期时间索引获取工作日数据

来自分类Dev

获取Mongo DB中两个日期之间的工作日数

来自分类Dev

如何获取两个日期之间在Informix中的工作日数

来自分类Dev

在JavaScript中仅获取两天之间的工作日数

来自分类Dev

Oracle查询以获取两个日期之间的工作日数

来自分类Dev

SQL Server 查询以获取两个日期之间的工作日数,不包括假期

来自分类Dev

根据工作日数设置scrollLeft

来自分类Dev

根据工作日数设置scrollLeft

来自分类Dev

如何从日期段获取特定的工作日?

来自分类Dev

Rails-获取与特定工作日匹配的记录

来自分类Dev

PHP 获取两个特定工作日的日期

来自分类Dev

获取月份的最后一个工作日(不是假期)

来自分类Dev

翻译PHP工作日和月份

来自分类Dev

给定月份的工作日计数

来自分类Dev

按月份的工作日分组

来自分类Dev

动态月份的工作日天数

来自分类Dev

计算给定日期当月的总工作日数和经过的工作日数

来自分类Dev

通过使用python导出周末和特定假期来计算两个日期之间的工作日数

来自分类Dev

Excel中计算时间表中特定小时数以上的工作日数最简单的方法是什么?

来自分类Dev

从jquery ui日历中选择月份时获取一个月的所有工作日

来自分类Dev

Python日期时间工作日数字代码-动态吗?

Related 相关文章

  1. 1

    获取特定月份的工作日数

  2. 2

    如何在Rails中查找特定月份的工作日数

  3. 3

    计算日期之间的特定工作日数

  4. 4

    PHP:获取每月的工作日数

  5. 5

    根据月份和年份列计算工作日数-DAX

  6. 6

    使用javascript和jQuery UI datepicker获取工作日数

  7. 7

    如何从Swift中的系统获取工作日数组?

  8. 8

    SQL获取两个日期之间的工作日数

  9. 9

    熊猫从日期时间索引获取工作日数据

  10. 10

    获取Mongo DB中两个日期之间的工作日数

  11. 11

    如何获取两个日期之间在Informix中的工作日数

  12. 12

    在JavaScript中仅获取两天之间的工作日数

  13. 13

    Oracle查询以获取两个日期之间的工作日数

  14. 14

    SQL Server 查询以获取两个日期之间的工作日数,不包括假期

  15. 15

    根据工作日数设置scrollLeft

  16. 16

    根据工作日数设置scrollLeft

  17. 17

    如何从日期段获取特定的工作日?

  18. 18

    Rails-获取与特定工作日匹配的记录

  19. 19

    PHP 获取两个特定工作日的日期

  20. 20

    获取月份的最后一个工作日(不是假期)

  21. 21

    翻译PHP工作日和月份

  22. 22

    给定月份的工作日计数

  23. 23

    按月份的工作日分组

  24. 24

    动态月份的工作日天数

  25. 25

    计算给定日期当月的总工作日数和经过的工作日数

  26. 26

    通过使用python导出周末和特定假期来计算两个日期之间的工作日数

  27. 27

    Excel中计算时间表中特定小时数以上的工作日数最简单的方法是什么?

  28. 28

    从jquery ui日历中选择月份时获取一个月的所有工作日

  29. 29

    Python日期时间工作日数字代码-动态吗?

热门标签

归档