【问题标题】:Find which nth occurrence of a day in a month for a date in Java在Java中查找日期在一个月中第n次出现的日期
【发布时间】:2016-04-20 23:32:08
【问题描述】:

我需要在 Java 中找出某个特定日期在月份中的第 nthdayOfWeek。例如,今天是 2016 年 4 月 20 日,即该月的第 第 3 个星期三,或 2016 年 10 月 31 日,即 10 月的第 第 5 个星期一。我怎样才能找到特定日期在一个月中出现的数字?

【问题讨论】:

  • 在寻找最佳方法之前,您有 a 方法吗?
  • 哪个版本的 Java?如果小于 8,你使用 Joda Time 吗?
  • Java 7。是的,我们正在使用 Joda 时间。
  • 不,我还没有解决问题的办法,或者我不会问这个问题,所以请不要给我投反对票,因为在我问这个问题之前我不知道答案。
  • 请在提问前做一些研究。右侧有许多相关(可能重复)的帖子。

标签: java date


【解决方案1】:

使用 Calendar 类的 get 方法。

public static int getOccurenceOfDayInMonth() {
    return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH);
}

[编辑]

这是给定任何日期而不是当前日期的解决方案。

public static int getOccurenceOfDayInMonth(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);

    return calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
}

【讨论】:

  • 这实际上工作正常。我从 2016 年 1 月 1 日开始生成了 1000 天,它返回任何日期的一个月中特定日期的正确第 n 次出现。
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 2023-02-25
  • 1970-01-01
  • 2013-05-15
相关资源
最近更新 更多