수업시간 JAVA/문제

Date클래스 노가다로 만들어보기

SEOKIHOUSE 2023. 5. 10. 12:53
package practice0509Testok;

class YHSDate1 {
	int year;
	int month;
	int day;
	String show;
	// 1 3 5 7 8 10 12 -31
	// 4 6 9 11 -30

	YHSDate1(int year, int month, int day, String show) {
		this.year = year;
		this.month = month;
		this.day = day;
		this.show = show;
	}

	public String checkMonth() {
		if (month < 1 || month > 12) {
			return null;
		}
		return "";
	}

	public String checkDay() {
		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
			if (day > 31 || day < 1) {
				return "일수 초과";
			} else {
				return monthDay31();
			}
		} else if (month == 2 || month == 4 || month == 6 || month == 9 || month == 11) {
			if (day > 30 || day < 1) {
				return "일수 초과";
			} else {
				return monthDay30();
			}
		}
		return null;
	}

	public String monthDay31() {
		if (month < 10) {
			if (day < 10) {
				return String.valueOf(year) + show + "0" + String.valueOf(month) + show + "0" + String.valueOf(day);
			}
			return String.valueOf(year) + show + "0" + String.valueOf(month) + show + String.valueOf(day);
		} else {
			if (day < 10) {
				return String.valueOf(year) + show + String.valueOf(month) + show + "0" + String.valueOf(day);
			}
			return String.valueOf(year) + show + String.valueOf(month) + show + String.valueOf(day);
		}
	}

	public String monthDay30() {
		if (month < 10) {
			if (month == 2) {
				if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
					if (day > 29) {
						return "일수 초과";
					}
				} else {
					if (day > 28) {
						return "일수 초과";
					}
				}
			}
			if (day < 10) {
				return String.valueOf(year) + show + "0" + String.valueOf(month) + show + "0" + String.valueOf(day);
			}
			return String.valueOf(year) + show + "0" + String.valueOf(month) + show + String.valueOf(day);
		} else {
			if (day < 10) {
				return String.valueOf(year) + show + String.valueOf(month) + "0" + show + String.valueOf(day);
			}
			return String.valueOf(year) + show + String.valueOf(month) + show + String.valueOf(day);
		}
	}

	

	public String toString() {
		if (checkMonth() != null) {
			return checkDay();
		} else {
			return checkMonth();
		}
	}
}

public class CreatingDate2 {

	public static void main(String[] args) {
		YHSDate1 date = new YHSDate1(2001, 2, 29, "-");
		System.out.println(date);
		YHSDate1 date1 = new YHSDate1(2000, 2, 29, "-");
		System.out.println(date1);

		

	}

}