Java 8 Date API-获取月份中一天的序数位置

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


01/01/1970 = 1, 因为它是1970年1月的第一个星期四


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


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


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


我尝试了什么?-没什么...我什至不知道从哪里开始;Java 8日期/时间API对我来说还很新。


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


public int getOrdinalPosition(TemporalAccessor temporal) {

    ...

}


LEATH
浏览 168回答 3
3回答

撒科打诨

好吧,以19/01/1970为例。从中减去7天,仍然是一月。再次减去7天,..仍在一月。第4次减去7天,..哦,它不再是一月了。您第四次删除7天,它不再是正确的月份。这就是您所需要的。相关方法:for循环,计数器和..minusDays(7)方法,以及getMonth()。

慕仙森

ChronoField.ALIGNED_WEEK_OF_MONTH您可以使用LocalDate.get()和ChronoField.ALIGNED_WEEK_OF_MONTH。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:11355BUILD SUCCESSFUL (total time: 0 seconds)

米脂

您需要的是 ChronoField.ALIGNED_WEEK_OF_MONTHLocalDate.of(1970,1,1).get(ChronoField.ALIGNED_WEEK_OF_MONTH)      //1LocalDate.of(1970,1,2).get(ChronoField.ALIGNED_WEEK_OF_MONTH)      //1LocalDate.of(1970,1,19).get(ChronoField.ALIGNED_WEEK_OF_MONTH)     //3LocalDate.of(1970,1,31).get(ChronoField.ALIGNED_WEEK_OF_MONTH)     //5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java