java - 使用java Calendar计算某些日期之间的天数并排除某些天数

标签 java

我正在尝试想出一种方法来计算两个不同日期之间的天数,但是一周中的某些天只会被计算在内。例如,假设我们要计算 8/1 和 8/31 之间的工作日数,但员工只在星期一、星期二和星期三工作。结果将是该员工在此期间仅工作 15 天。

有没有人使用 java Calendar 类将类似的东西放在一起?

最佳答案

尝试 Joda Time , 是管理日期和时间的最佳解决方案。

更正了dogbane的代码:

    final Calendar current = Calendar.getInstance();
    current.set(2011, 7, 1);

    final Calendar end = Calendar.getInstance();
    end.set(2011, 7, 31);
    int count = 0;
    while (!current.after(end)) {
        int dayOfWeek = current.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == Calendar.MONDAY || 
            dayOfWeek == Calendar.TUESDAY || 
            dayOfWeek == Calendar.WEDNESDAY) {
            count++;
        }
        current.add(Calendar.DAY_OF_MONTH, 1);
    }
    System.out.println(count);

如果使用Joda Time:

    DateTime current = new DateTime(2011, 8, 1, 0, 0, 0, 0);
    DateTime end = new DateTime(2011, 8, 31, 0, 0, 0, 0);
    int count = 0;
    while (!current.isAfter(end)) {

        int dayOfWeek = current.getDayOfWeek();
        if (dayOfWeek == DateTimeConstants.MONDAY || dayOfWeek == DateTimeConstants.TUESDAY
                || dayOfWeek == DateTimeConstants.WEDNESDAY) {
            count++;
        }
        current = current.plusDays(1);
    }
    System.out.println(count);

关于java - 使用java Calendar计算某些日期之间的天数并排除某些天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389440/

相关文章:

用于客户端/服务器通信的 Java 标准

java - 使用 OpenRewrite 父类(super class)访问检查将 Micronaut 2.X 升级到 3.X 失败

java - URL 请求参数 JSP 错误

java - 使用循环发送 URL - Eclipse Java Tomcat

没有字符的 Java 字符串 ("") 用逗号分割返回数组大小 1

java - 获取鼠标位置的更快方法

java - 从 InputStream 中删除换行符

java - 多选 RecyclerView 在 Android 中无法正常工作

java - 嵌套循环将索引值提取到新数组中

Java:将二维数组中的整数转换为字符串