从给定日期获取连续工作日的“ N”个数字

Chamithra Thenuwara

我目前正在从事,它的休假管理模块中HR system有一个get 10 consecutive days (working days except weekends)休假选项它是一个J2EE应用程序。

我只想 get 'N' number of consecutive weekdays from the given date

有人知道如何解决这个问题吗?

PS:我没有使用JodaTime之类的任何第三方库。

这是我的控制器的单日休假申请代码。这与连续几天的事情无关。但是在这里张贴这个证明我做的很认真..

if (action.equals("applyLeave")) {

    Leave l = new Leave();

    int userid = Integer.parseInt(request.getParameter("userid"));
    int leavetype = Integer.parseInt(request.getParameter("leavetype"));
    String from = request.getParameter("from"); // from time
    String to = request.getParameter("to"); // to time
    double total = Double.parseDouble(request.getParameter("total")); // total hours

    String r1 = request.getParameter("rep1");
    String r2 = request.getParameter("rep2");

    if (r1 == null || r1.isEmpty()) {
        r1 = "0";
    }

    if (r2 == null || r2.isEmpty()) {
        r2 = "0";
    }

    int rep1 = Integer.parseInt(r1);
    int rep2 = Integer.parseInt(r2);

    String reason = request.getParameter("reason");
    String date = request.getParameter("date");

    l.setUser(userid);
    l.setLeavetype(leavetype);
    l.setDate(date);
    l.setFrom(from);
    l.setReason(reason);
    l.setRep1(rep1);
    l.setRep2(rep2);
    l.setTo(to);
    l.setTotal(total);

    dao.saveLeave(l);

    // get manager of the department
    UserDao udao = (UserDao) ctx.getBean("udao");
    DepartmentDao ddao = (DepartmentDao) ctx.getBean("depdao");
    NotificationDao notificationDao = (NotificationDao) ctx.getBean("notificationDao");
    User u = udao.getUserByUserID(userid).get(0);
    int department = u.getDepartment();
    Department d = ddao.getDepartmentByID(department).get(0);
    int manager = d.getManager();

    // save a notification for the respective manager
    // insert notification
    String text = u.getFirstname() + " " + u.getLastname() + " has applied for a leave";
    Notification n = new Notification();
    n.setUserid(manager);
    n.setFk(dao.getLeaveID());
    n.setType(3);
    n.setText(text);
    notificationDao.saveNotification(n);

    PrintWriter out = res.getWriter();
    res.setContentType("text/html");
    Gson gson = new Gson();
    JsonObject myObj = new JsonObject();
    myObj.add("message", gson.toJsonTree("Successfully Inserted"));
    out.println(myObj.toString());
    out.close();

}
泰迪熊
List<Date> holidays = conf.getHolidays();
List<Date> nWorkingDays = new ArrayList<>();

// get the current date without the hours, minutes, seconds and millis
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);

// iterate over the dates from now and check if each day is a business day
int businessDayCounter = 0
while (businessDayCounter < n) { //You want n working days
    int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
    if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY && !holidays.contains(cal.getTime())) {
        businessDayCounter++;
        nWorkingDays.add(cal.getTime());
    }
    cal.add(Calendar.DAY_OF_YEAR, 1);
}

return nWorkingDays;

从此答案改编而成:https : //stackoverflow.com/a/15626124/1364747

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在给定日期添加N个工作日,以跳过SQL DB2中的假期,异常和周末

来自分类Dev

给定日期范围,如何将其划分为N个连续的子间隔?

来自分类Dev

如何使用日历参考表在SQL Server中从给定日期计算工作日

来自分类Dev

如何在给定日期的一周内获得工作日?

来自分类Dev

Python TextWrapper,给定n个数字行

来自分类Dev

获取n以下的每个数字的总和

来自分类Dev

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

来自分类Dev

使用ShellScript比较给定日期是一个月的最后一个工作日

来自分类Dev

对于R中的多个数据框,返回日期最接近给定日期的行

来自分类Dev

JavaScript / jQuery:获取日期字符串的数字工作日值

来自分类Dev

Javascript:如何遍历多位数字并找到每个数字的连续数字 ^ n?

来自分类Dev

连续正好有n个数字

来自分类Dev

查找给定范围内 n 个数字的倍数

来自分类Dev

C.如何根据数字的大小从数字中获取前N个数字(例如,数字= 1234 n = 2)

来自分类Dev

C.如何根据数字的大小从数字中获取前N个数字(例如,数字= 1234 n = 2)

来自分类Dev

jQuery获取链接并根据第n个数字添加变量

来自分类Dev

从地图中获取最高n个数字的最简洁方法?

来自分类Dev

使用Javascript获取数组中的最大N个数字

来自分类Dev

给定一个数组,找到小于c的n个数字的组合

来自分类Dev

将数字日期转换为工作日

来自分类Dev

给定一个数字及其根值,找到一个数字的第 n 个根

来自分类Dev

如何在距x的距离处找到与给定数字最接近的n个数字?

来自分类Dev

可被给定的两个数字整除的N位数字的数量

来自分类Dev

有效地创建n个数字的数组(不包括k个给定的数字)

来自分类Dev

如何在距x的距离处找到与给定数字最接近的n个数字?

来自分类Dev

获取在“ n”位置具有“ x”个数字的范围之间的数字

来自分类Dev

使用JavaScript获取任何工作日的数字/整数值

来自分类Dev

给定一个数n,列出所有正位数字,使得每一个数字没有重复的数字

来自分类Dev

获取随机n个数字的序列,这些数字加起来但仅来自一组特定的数字

Related 相关文章

  1. 1

    在给定日期添加N个工作日,以跳过SQL DB2中的假期,异常和周末

  2. 2

    给定日期范围,如何将其划分为N个连续的子间隔?

  3. 3

    如何使用日历参考表在SQL Server中从给定日期计算工作日

  4. 4

    如何在给定日期的一周内获得工作日?

  5. 5

    Python TextWrapper,给定n个数字行

  6. 6

    获取n以下的每个数字的总和

  7. 7

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

  8. 8

    使用ShellScript比较给定日期是一个月的最后一个工作日

  9. 9

    对于R中的多个数据框,返回日期最接近给定日期的行

  10. 10

    JavaScript / jQuery:获取日期字符串的数字工作日值

  11. 11

    Javascript:如何遍历多位数字并找到每个数字的连续数字 ^ n?

  12. 12

    连续正好有n个数字

  13. 13

    查找给定范围内 n 个数字的倍数

  14. 14

    C.如何根据数字的大小从数字中获取前N个数字(例如,数字= 1234 n = 2)

  15. 15

    C.如何根据数字的大小从数字中获取前N个数字(例如,数字= 1234 n = 2)

  16. 16

    jQuery获取链接并根据第n个数字添加变量

  17. 17

    从地图中获取最高n个数字的最简洁方法?

  18. 18

    使用Javascript获取数组中的最大N个数字

  19. 19

    给定一个数组,找到小于c的n个数字的组合

  20. 20

    将数字日期转换为工作日

  21. 21

    给定一个数字及其根值,找到一个数字的第 n 个根

  22. 22

    如何在距x的距离处找到与给定数字最接近的n个数字?

  23. 23

    可被给定的两个数字整除的N位数字的数量

  24. 24

    有效地创建n个数字的数组(不包括k个给定的数字)

  25. 25

    如何在距x的距离处找到与给定数字最接近的n个数字?

  26. 26

    获取在“ n”位置具有“ x”个数字的范围之间的数字

  27. 27

    使用JavaScript获取任何工作日的数字/整数值

  28. 28

    给定一个数n,列出所有正位数字,使得每一个数字没有重复的数字

  29. 29

    获取随机n个数字的序列,这些数字加起来但仅来自一组特定的数字

热门标签

归档