상세 컨텐츠

본문 제목

[이넘] 윤달구하기 일수의 총합

자바

by esoesmio 2023. 4. 5. 14:05

본문

//--------------------열거형--------------------
//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;
    }


}

관련글 더보기

댓글 영역