Development

Java 2016년 날짜 요일 구하기

OOOooOOoo·2018년 3월 29일·조회 3,602

프로그래머스에서 본 예제를 자바로 구현해봤습니다. 더 좋은 풀이 있으면 공유하시지요..

1. 문제

2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요? 두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각

SUN,MON,TUE,WED,THU,FRI,SAT

를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다.


2. 코드

package Test;

public class DayName {
	public static void main(String[] args) {
		int m = 9;
		int n = 3;
		DayName dn = new DayName();
		System.out.println(dn.dayName(m, n));
	}

	private String dayName(int m, int n) {
		int days = 0;

		if (m > 1) {
			for (int inx = 1; inx < m; inx++) {
				days += getMonthDay(inx);
			}
		}

		days += n;
		int daysOffset = days % 7;

		switch (daysOffset) {
		case 1:
			return "FRI";
		case 2:
			return "SAT";
		case 3:
			return "SUN";
		case 4:
			return "MON";
		case 5:
			return "TUE";
		case 6:
			return "WED";
		default:
			return "THU";
		}
	}

	private int getMonthDay(int m) {
		if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
			return 31;
		else if (m == 2)
			return 29;
		else
			return 30;
	}
}

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.