当前位置: 首页 > 知识库问答 >
问题:

Java 8 Date API-获取当月当天的顺序位置

公冶桐
2023-03-14

受以下帖子启发

  • 获得一个月的第一个星期一
  • Java:如何获得一个月内x天的日期(例如2012年2月的第三个星期一)

我需要一个函数来返回一个月中给定日期的顺序位置,例如:

因为这是1970年1月的第一个星期四

02/01/1970 = 1因为这是1970年1月的第一个星期五

19/01/1970 = 3因为这是1970年1月的第三个星期一

1970年1月31日=5,因为这是1970年1月的第五个星期六

我试过什么?-没有什么我甚至不知道从哪里开始;Java8日期/时间API对我来说非常新。

理想情况下,我想要一个具有以下签名的函数:

public int getOrdinalPosition(TemporalAccessor temporal) {
    ...
}

共有3个答案

堵远航
2023-03-14

你需要的是ChronoField。每周每月调整

LocalDate.of(1970,1,1).get(ChronoField.ALIGNED_WEEK_OF_MONTH)      //1
LocalDate.of(1970,1,2).get(ChronoField.ALIGNED_WEEK_OF_MONTH)      //1
LocalDate.of(1970,1,19).get(ChronoField.ALIGNED_WEEK_OF_MONTH)     //3
LocalDate.of(1970,1,31).get(ChronoField.ALIGNED_WEEK_OF_MONTH)     //5
闻人宇定
2023-03-14

您可以使用LocalDate。get()计时字段。每周每月调整

import java.time.LocalDate;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalAccessor;

/**
 *
 * @author Sedrick
 */
public class JavaApplication19 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        LocalDate localDate1 = LocalDate.of(1970, 01, 01);
        LocalDate localDate2 = LocalDate.of(1970, 02, 01);
        LocalDate localDate3 = LocalDate.of(1970, 01, 19);
        LocalDate localDate4 = LocalDate.of(1970, 01, 31);


        System.out.println(localDate1.get(ChronoField.ALIGNED_WEEK_OF_MONTH));
        System.out.println(localDate2.get(ChronoField.ALIGNED_WEEK_OF_MONTH));
        System.out.println(localDate3.get(ChronoField.ALIGNED_WEEK_OF_MONTH));
        System.out.println(localDate4.get(ChronoField.ALIGNED_WEEK_OF_MONTH));

        System.out.println(getOrdinalPosition(localDate4));
    }

    static public int getOrdinalPosition(TemporalAccessor temporal) {
        return LocalDate.from(temporal).get(ChronoField.ALIGNED_WEEK_OF_MONTH);
    }
}

输出:

run:
1
1
3
5
5
BUILD SUCCESSFUL (total time: 0 seconds)
罗昕
2023-03-14

以1970年1月19日为例。从中减去7天,它就是。。还是一月。再减去7天,然后。。还是一月。第四次减去7天,然后。。哦,嘿,现在已经不是一月了。第四次删除7天时,它不再是正确的月份。

这就是你在这里所需要的。

相关方法:a for循环、计数器和... theminusDay(7)方法getMonth()

 类似资料:
  • 问题内容: 我需要获取SQL中指定日期的月份的最后一天。如果我有每月的第一天,则可以执行以下操作: 但是,有谁知道如何将其推广,以便我可以找到任何给定日期的月的最后一天? 问题答案: 在SQL Server 2012中,可以使用EOMONTH函数。 返回包含指定日期的月份的最后一天,并带有可选的偏移量。 句法 如何找到某个给定日期的月的最后一天?

  • 问题内容: 给定月份剩余的天数如何找到当月剩余的天数?例如,如果当前月份为11月,而今天为16/11/2016,则月份中的天数``经过的天数=?我想动态地进行操作在我的示例中30′16 = 14 问题答案: 只需使用Datepart函数:

  • 本文向大家介绍php获取当月最后一天函数分享,包括了php获取当月最后一天函数分享的使用技巧和注意事项,需要的朋友参考一下 非常简单实用的函数,这里就不多废话了,直接奉上代码 以上就是本代码的全部内容,希望小伙伴们喜欢。

  • 问题内容: 这个问题已经在这里有了答案 : 从时间戳列中选择当前月份记录mysql (9个答案) 如何在MySQL的当月第一天和当日之间进行选择? (15个答案) 6年前关闭。 如何从MySql数据库表中选择“当前月”记录? 像现在这样,当前月份是一月。我想获取一月月份的记录,其中我的表列的数据类型是。我想知道sql查询。 谢谢 问题答案: 该查询将为您工作:

  • 本文向大家介绍JS根据年月获得当月天数的实现代码,包括了JS根据年月获得当月天数的实现代码的使用技巧和注意事项,需要的朋友参考一下

  • 有没有办法以秒为单位获取一天中的当前时间?请注意,我问的是一天中的时间,而不是UTC时间。 我想要的是一个介于0-86400(12:00AM-11:59PM)之间的值(以秒为单位)。我正在开发一个每天工作的应用程序,当一天结束时,时间(以秒为单位)应该会重新回到。 假设现在是。我应该得到 36,000 秒,如果我的时间是,我应该得到 61,200 秒。 PS:我不知道现在的时间。程序将使用函数自行