숫자를 입력으로 취해 월 및 날짜를 출력으로 표시 할 수있는 코드가 필요합니다. 예를 들어,숫자에서 월 이름을 얻는 방법
사용자 입력 : 33 출력 2 월 2
누군가 나에게이 문제에 대한 논리를 이해하는 데 도움이 될 수 있습니다. 다음과 같은
숫자를 입력으로 취해 월 및 날짜를 출력으로 표시 할 수있는 코드가 필요합니다. 예를 들어,숫자에서 월 이름을 얻는 방법
사용자 입력 : 33 출력 2 월 2
누군가 나에게이 문제에 대한 논리를 이해하는 데 도움이 될 수 있습니다. 다음과 같은
당신은 올해의 33 회 일을 설정하는 날짜와 withDayOfYear(int dayOfYear)
의 형식을 DateTimeFormatter
을 사용할 수 있습니다 : :
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
'Year.now(). atDay (33)', 더 직접적. – Tunaki
입력을위한 @Tunaki thx –
대체 y를 사용하면 비 윤년을 가정하고 다음을 사용할 수 있습니다.
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);
}
}
33은 2 월과 어떤 관련이 있습니까? 33 일이 그 해를 나타낼 것입니까? – Tunaki
먼저 알아야 할 사항은 "33"이 "2 월 2 일"을 의미하는 것입니다. 일단 해당 변환 논리를 정의하면 해당 논리를 수행하는 코드를 작성하기 시작할 수 있습니다. (참고 : 날짜/시간 라이브러리가 있습니다. 여기에 직접 쓰는 것이 아니라 매우 유용합니다. 날짜는 * 하드 *입니다.) – David
'60 '의 출력은 무엇입니까? '2 월 29 일'또는'화성 1'? – Gendarme