//--------------------열거형--------------------
//1. KOR, CHI, JAP, USA 네 개의 상수를 갖는 enum을 생성하고 첫 번째 값은 "나라 한글명"이고 두 번째 값은 "대표음식"으로 지정한다.
// public void notifyFood(String country) 메소드를 만들고 country 값과 동일한 한글명인 나라의 음식을 다음과 같이 출력하도록 구현하세요.
// country에 "중국"이 들어오면 "중국의 대표음식은 짜장면입니다."라고 나오도록 하세요. (각 국의 음식은 한국=불고기, 중국=짜장면,
// 일본=초밥, 미국=햄버거)
//
//2. 커피 메뉴를 갖는 enum을 생성하고 AMERICANO, LATTE, MOCHA, COLDBREW 4개로 지정한다. 가격이 값이 되고 순서대로 2000, 3000, 4000, 4500으로 지정한다.
// 메뉴의 총 가격을 계산하는 추상 메소드를 정의하고 각각의 상수에서 구현하는데 아메리카노(아이스 300 추가), 라떼(아이스 500 추가), 모카(휘핑 1000 추가),
// 콜드브루(시럽 200 추가) 모든 메뉴 옵션 없는 주문은 지정한 가격대로 진행된다. totalPrice(int optionOrder, int normalOrder) 옵션 추가 잔수와 일반 메뉴 잔수를 받아서
// 각 메뉴의 가격을 계산하는 추상 메소드 구현한다. 아아 2잔 뜨아 1잔 아라 1잔 휘핑 모카 2잔 콜드브루 2잔일 때의 가격을 출력하세요.
//
//3. 12달을 상수로 만들어서 enum을 선언하고 첫 번째 값은 평년일 때 그 달의 일수 두 번째 값은 윤년일 때 그 달의 일수로 설정하고 사용자가 년도를 입력하면
// 해당 년도의 1, 2, 3, 4, 5월의 일수의 총합을 출력하는 메소드를 구현하세요. sumDays(int year)
enum Month {
JANUARY(31, 31),
FEBRUARY(28, 29),
MARCH(31, 31),
APRIL(30, 30),
MAY(31, 31),
JUNE(30, 30),
JULY(31, 31),
AUGUST(31, 31),
SEPTEMBER(30, 30),
OCTOBER(31, 31),
NOVEMBER(30, 30),
DECEMBER(31, 31);
private final int daysInNormalYear;
private final int daysInLeapYear;
Month(int daysInNormalYear, int daysInLeapYear) {
this.daysInNormalYear = daysInNormalYear;
this.daysInLeapYear = daysInLeapYear;
}
public int getDaysInNormalYear() {
return daysInNormalYear;
}
public int getDaysInLeapYear() {
return daysInLeapYear;
}
}
class MonthDaysCalculator {
public int sumDays(int year) {
int totalDays = 0;
for (Month month : Month.values()) {
if (month.ordinal() >= 0 && month.ordinal() <= 4) {
if (isLeapYear(year)) {
totalDays += month.getDaysInLeapYear();
} else {
totalDays += month.getDaysInNormalYear();
}
}
}
return totalDays;
}
private boolean isLeapYear(int year) {
if (year % 4 != 0) {
return false;
} else if (year % 100 != 0) {
return true;
} else if (year % 400 != 0) {
return false;
} else {
return true;
}
}
}
public class home11_안함 {
public static void main(String[] args) {
MonthDaysCalculator calculator = new MonthDaysCalculator();
int totalDays = calculator.sumDays(2023);
System.out.println("2023년 1월부터 5월까지의 일수의 총합: " + totalDays);
}
}
public class z21 {
public static void main(String[] args) {
monthdaycalculator m = new monthdaycalculator();
int totaldays = m.sumdays(2023);
System.out.println(totaldays);
}
}
enum month {
JANUARY(31, 31),
FEBRUARY(28, 29),
MARCH(31, 31),
APRIL(30, 30),
MAY(31, 31),
JUNE(30, 30),
JULY(31, 31),
AUGUST(31, 31),
SEPTEMBER(30, 30),
OCTOBER(31, 31),
NOVEMBER(30, 30),
DECEMBER(31, 31);
public int getDaysnormalyear() {
return daysnormalyear;
}
public void setDaysnormalyear(int daysnormalyear) {
this.daysnormalyear = daysnormalyear;
}
public int getDayleapyear() {
return dayleapyear;
}
public void setDayleapyear(int dayleapyear) {
this.dayleapyear = dayleapyear;
}
int daysnormalyear;
int dayleapyear;
month(int daysnormalyear, int dayleapyear) {
this.daysnormalyear = daysnormalyear;
this.dayleapyear = dayleapyear;
}
}
class monthdaycalculator {
public boolean isleapyear(int year) {
if (year % 4 == 0 && year % 100 == 0 && year % 400 == 0) {
return false;
} else if (year % 4 == 0 && year % 100 == 0) {
return true;
} else if (year % 4 == 0) {
return false;
} else {
return true;
}
}
public int sumdays(int year) {
int totaldays = 0;
for (month m : month.values()) {
if (m.ordinal() >= 0 && m.ordinal() <= 4) {
if (!isleapyear(year)) {
totaldays += m.getDayleapyear();
} else {
totaldays += m.getDaysnormalyear();
}
}
}
return totaldays;
}
}
[병렬스트림] 병렬에 대한 정보 (0) | 2023.04.05 |
---|---|
[Function] 사용방식 (0) | 2023.04.05 |
[쓰레드 넘버프린트] wait notify 교대로 가다가 안되는거 해결 (0) | 2023.04.05 |
[람다 생성자연습] 영어학원 컴학원 (0) | 2023.04.05 |
[이넘]2 (0) | 2023.04.05 |
댓글 영역