Language/Java
[ 코딩 연습] 클래스와 메서드_올해 띠, 간지, 나이 구하기
simDev1234
2022. 3. 12. 17:55
현재 디렉토리
1. 먼저 myutil 패키지 안에 myInfo클래스를 형성하고, 메소드를 작성했다.
-- 메서드 앞 public 접근제어자 : 어디서든 이 메서드 접근 가능
-- 메서드 앞 static 제어자 없음 : 인스턴스 형성 후 이 메서드 사용 가능
package myutil;
import java.util.Calendar;
public class MyInfo {
//1. 띠 구하기
//십이지 : 신유술해자축인묘진사오미 (0~11)
//식 : (현재년도 % 12)번째 십이지 (입 : int year, 출 : String)
public String getTti(int year) {
String[] Tti = {"원숭이", "닭", "개", "돼지","쥐", "소", "호랑이",
"토끼","용","뱀", "말", "양",};
int n = year % 12;
return Tti[n];
}
//2. 간지 구하기
//간지 : 경신임계갑을병정무기(0~9)
//십이지 : 신유술해자축인묘진사오미 (0~11)
//식 : (현재년도 % 10)번째 간지 + (현재년도 %12)번째 십이지 (입 : int year, 출 : String)
public String getGanji(int year) {
String[] Ganji = {"경","신","임","계","갑","을","병","정","무","기"};
String[] Tti = {"신","유","술","해","자","축","인","묘","진","사","오","미"};
int g = year % 10;
int t = year % 12;
return Ganji[g]+Tti[t];
}
//3. 출생년도로부터 나이 구하기 (입 : int year, 출 : int age)
// 식 : 현재년도 - 출생년도 + 1
public int getAge(int year) {
//현재 년도
Calendar c = Calendar.getInstance();
int current_year = c.get(Calendar.YEAR);
//식
int age = current_year - year + 1;
return age;
}
}
2. mymain.Main1.java의 메인 함수에서 출력을 했다.
package mymain;
import java.util.Calendar;
import java.util.Scanner;
import myutil.MyInfo;
public class Main1 {
public static void main(String[] args) {
//출생년도를 통해 올해 띠, 간지, 나의 나이 구하기
Scanner scanner = new Scanner(System.in);
MyInfo myinfo = new MyInfo();
Calendar c = Calendar.getInstance();
System.out.print("당신의 출생년도를 입력하세요(ex.1994) : ");
int user_year = scanner.nextInt();
int current_year = c.get(Calendar.YEAR);
System.out.printf("올해는 %d이며 %s의 해입니다.%n",current_year,myinfo.getTti(current_year));
System.out.printf("올해는 %d이며 %s년입니다.%n",current_year,myinfo.getGanji(current_year));
System.out.printf("올해는 %d이며 당신은 %d살이 되었습니다.%n",current_year,myinfo.getAge(user_year));
scanner.close();
}
}
>> 결과
당신의 출생년도를 입력하세요(ex.1994) : 1400
올해는 2022이며 호랑이의 해입니다.
올해는 2022이며 임인년입니다.
올해는 2022이며 당신은 623살이 되었습니다.