如何从数字

时间:2016-10-03 18:14:39

标签: java

我需要一个代码,可以将一个数字作为输入,并将月份的月份和日期作为输出。例如,

美国输入:33 输出:2月2日

有人可以帮助我理解这个问题的逻辑。

2 个答案:

答案 0 :(得分:1)

您可以使用DateTimeFormatter格式化日期,并使用withDayOfYear(int dayOfYear)设置一年中的第33天,如下所示:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d");
System.out.println(LocalDate.now().withDayOfYear(33).format(formatter));

或@Tunaki提出

System.out.println(Year.now().atDay(33).format(formatter));

<强>输出:

February 2

答案 1 :(得分:0)

或者,您可以假设非闰年并使用以下内容:

package com.company;

public class Main {

    public static void main(String[] args) {
        String[] months = {"Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."};
        int[] daysinMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int n = 33; // the input value
        int i = 0;

        n = n % 365;

        while (n > daysinMonth[i]) {
            n -= daysinMonth[i];
            i++;
        }
        System.out.println(months[i] + " " + n);
    }
}