我需要一个代码,可以将一个数字作为输入,并将月份的月份和日期作为输出。例如,
美国输入:33 输出: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);
}
}