如何在Java中计算一个月内特定工作日的顺序(序数)数
我试图用Java确定一个月内一个工作日的顺序序号。i、 如果星期五是一个月的第一个或第三个星期五如何在Java中计算一个月内特定工作日的顺序(序数)数,java,datetime,ordinal,Java,Datetime,Ordinal,我试图用Java确定一个月内一个工作日的顺序序号。i、 如果星期五是一个月的第一个或第三个星期五 在阅读了Java日历和这里的帖子之后,我找不到一个简单的方法。我能想到的一种方法是确定本月的第一周在本月有多少天,然后根据当天的日期调整本月的第周。然而,它需要一点复杂的计算。有人知道一个简单的解决方法吗?只需取月日,减去1,除以7,然后加1。一个月的前七天总是第一天(星期二、星期三……),无论一周中的哪一天是一个月的实际第一天 就我个人而言,我会利用乔达的时间: public int getWee
在阅读了Java日历和这里的帖子之后,我找不到一个简单的方法。我能想到的一种方法是确定本月的第一周在本月有多少天,然后根据当天的日期调整本月的第周。然而,它需要一点复杂的计算。有人知道一个简单的解决方法吗?只需取月日,减去1,除以7,然后加1。一个月的前七天总是第一天(星期二、星期三……),无论一周中的哪一天是一个月的实际第一天 就我个人而言,我会利用乔达的时间:
public int getWeekOfWeekDay(LocalDate date) {
return ((date.getDayOfMonth() - 1) / 7) + 1;
}
。。。但是您可以使用日历
并获取日历.DAY\u of\u MONTH
字段的值来执行相同的操作
编辑:事实上,我刚刚注意到,对于一个变化,java.util.Calendar
实际上比Joda Time更简单——它有一个特定的字段!您所需要的只是:
int weekOfWeekDay = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
从以下文件:
get和set的字段号,指示当前月份内一周中某一天的序号。与“周中的天”字段一起,它唯一地指定一个月内的一天。与月的周和年的周不同,此字段的值不依赖于getFirstDayOfWeek()或getMinimalDaysInFirstWeek()。第1个月到第7个月的第1天始终与第1个月的第1周的第1天相对应;8到14对应于第2个月的第1周的第2天,依此类推
我想我可能仍然会使用Joda Time版本,因为它只是一个更好的API,但是如果您被迫使用日历
,至少您可以一次性完成