수업시간 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);
}
}