12. JAVA ect 클래스 (Math / Date / Calendar / SimpleDateFormat)

2020. 6. 8. 15:46·개발/JAVA
728x90
반응형

1. Math 클래스

- 수학관련 메소드 클래스

- 인스턴스화 불가

Math math = new Math();[x]

 

* 주요메소드

1. abs()

- 절대값

float f = -3.14F;
double d = -100.9;
int num = -10;

System.out.println(Math.abs(f)); // 3.14
System.out.println(Math.abs(d)); // 100.9
System.out.println(Math.abs(num)); // 10

 

2. ceil(double d)

- 올림

System.out.println(Math.ceil(3.4)); // 4
System.out.println(Math.ceil(-3.4)); // -3
System.out.println(Math.ceil(3.9)); // 4

 

3. floor(double d)

- 내림

System.out.println(Math.floor(3.4)); // 3
System.out.println(Math.floor(-3.4)); // -4
System.out.println(Math.floor(3.9)); // 3

 

4. long round(double d) / int round(double d)

- 반올림

System.out.println(Math.round(3.49)); // 3
System.out.println(Math.round(3.51)); // 4
System.out.println(Math.round(-1.4)); // -1
System.out.println(Math.round(-1.8)); // -2
System.out.println(Math.round(-0.4)); // 0
System.out.println(Math.round(-0.8)); // -1
System.out.println(Math.round(-1.5)); // -2

 

5. max() / min()

- 두 숫자 중 큰값 / 작은값 반환

System.out.println(Math.max(100, 10)); // 100
System.out.println(Math.min(100, 10)); // 10

 

6. double pow(double a, double b)

- a의 b승

System.out.println(Math.pow(2, 3)); // 2의 3승, 8
System.out.println(Math.pow(3, 2)); // 3의 2승, 9

 

7. Math.random()

- 숫자를 랜덤하게 발생시킴

- (int)(Math.random()*(차이값+1)+시작값

5부터 10까지 랜덤하게 발생시켜보자
System.out.println((int)(Math.random()*6)+5);

 

- Math.random()과 같은 기능을 제공해주는 Random클래스

- 인스턴스변수.nextInt(차이값+1)+시작값

Random rand = new Random();
System.out.println(rand.nextInt(6) + 5);

 


2. Date 클래스

- 날짜 관련 메소드들이 있는 클래스

- 대부분이 Deprecated. 추후에 사라질수 있으니 웬만하면 사용하지 말라는 뜻 (작대기 그어져 있음 Deprecated)

Date date = new Date(); // 오늘의 날짜가 들어가 있음

 

1. getYear()

- 올해 연도를 반환. 단, 1900을 더해줘야된다

2. getMonth()

- 월 반환. 단, 0부터 시작 하므로 +1 해주면 된다

3. getDate()

- 일 반환

4. getDay()

- 요일 반환. 단, 숫자로 반환되기때문에 조건문으로 처리 해야한다 (0 : 일요일... 6 : 토요일)

System.out.println(date.getYear() + 1900);
System.out.println(date.getMonth() + 1);
System.out.println(date.getDate());
System.out.println(date.getDay());

 

5. boolean after()/before()

- 두 날짜 사이의 선후 관계를 판단

String strFDate = "2018.12.14";
String strSDate = "2018.12.15";
System.out.println(fDate.after(sDate) ? "fDate가 최근날짜" : "sDate가 최근날짜");
System.out.println(fDate.before(sDate) ? "sDate가 최근날짜" : "fDate가 최근날짜");

 

6. equals()

- Date클래스의 equals()메소드는 메모리의 주소비교가 아닌 날짜를 비교하도록 오버라이딩 됨 (true/false반환)

System.out.println(fDate.equals(sDate) ? "날짜같음" : "날짜다름");

 

7. int compareTo(Date anotherDate)

- 두 날짜가 같다면 0반환 다르면 1이나 -1반환

System.out.println(fDate.compareTo(sDate)); // -1
System.out.println(sDate.compareTo(fDate)); // 1
System.out.println(fDate.compareTo(sDate) == 0 ? "두 날짜가 같다" : "두 날짜가 다르다");

 


1. setYear()

- 연도 셋팅. -1900을 해줘야 getYear()와 혼동이 안생김

2. setMonth()

- 월 셋팅. -1을 해줘야 getMonth()와 혼동이 안생김

3. setDate()

- 일 셋팅

4. setDay()

- 요일 셋팅

System.out.println(date.setYear(2019 - 1900));
System.out.println(date.setMonth(4 - 1));
System.out.println(date.setDate(11));
System.out.println(date.setDay(0)); // 0은 일요일

 


3. Calendar 클래스

- Date와 같이 날짜를 담당하는 메소드들이 모여있는 클래스

- Singletone Design으로 되어있어 일반적인 인스턴스화 불가능(접근지정자 protected)

Calendar cal = Calendar.getInstance();

 

1. get() 메소드

- get()메소드 안에 인자에 따라 가져올 날을 반환해준다

System.out.println(String.format("%d년 %d월 %d일 %s %d시 %d분 %d초", 
   cal.get(Calendar.YEAR),
   cal.get(Calendar.MONTH) + 1, 
   cal.get(Calendar.DATE), 
   cal.get(Calendar.AM_PM) == 0 ? "오전" : "오후", // 0이면 오전, 1이면 오후
   cal.get(Calendar.HOUR),
   cal.get(Calendar.MINUTE), 
   cal.get(Calendar.SECOND)));

 

2. set() 메소드

- set()메소드 안에 (년, 월, 일, 시, 분, 초) 값을 셋팅

cal.set(2019, 4, 11, 15, 15, 20);

 


4. simpleDateFormat 클래스

- 날짜 형식을 정해줄 수 있는 메소드들의 클래스

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 

1. String format(Date d)

- Date 타입을 String형으로 반환해주는 메소드

System.out.println(dateFormat.format(new Date()));

 

2. applyPattern(String 날짜 패턴)

- 중간에 날짜 패턴을 변경하고자 할때 사용

- a는 오전/오후를 나타네며 at 을 출력하고 싶다면 a는 패턴이므로 ''를 붙이면 된다

dateFormat.applyPattern("yyyy년 MM월 dd일 a HH시 mm분 입니다.");
System.out.println(dateFormat.format(new Date()));

 

3. parse(String 날짜 형식)

- 문자열을 날짜형식으로 반환. 단, 날짜 형식과 일치해야된다

dateFormat.applyPattern("yyyy/MM/dd");
// 패턴에 맞게
String stringDate = "2018/12/14";
Date parseDate = dateFormat.parse(stringDate);
System.out.println(parseDate);

 

 

 

728x90
반응형
저작자표시

'개발 > JAVA' 카테고리의 다른 글

14. JAVA 추상화 / 캡슐화 / 은닉화 / 생성자 / 싱글톤  (0) 2020.06.08
13. JAVA 상속성 / 오버로딩(OverLoading) / 오버라이딩(OverRiding) / this / super  (0) 2020.06.08
11. JAVA String Basic / String Method / StringBuffer  (0) 2020.06.08
10. JAVA static블락 / wrapper클래스 : 네이버 블로그  (0) 2020.06.08
09. JAVA 클래스 / 객체 생성 및 사용 / 접근지정자 / 전역, 지역 변수 / static : 네이버 블로그  (0) 2020.06.08
'개발/JAVA' 카테고리의 다른 글
  • 14. JAVA 추상화 / 캡슐화 / 은닉화 / 생성자 / 싱글톤
  • 13. JAVA 상속성 / 오버로딩(OverLoading) / 오버라이딩(OverRiding) / this / super
  • 11. JAVA String Basic / String Method / StringBuffer
  • 10. JAVA static블락 / wrapper클래스 : 네이버 블로그
joolog
joolog
  • joolog
    JOO
    joolog
  • 전체
    오늘
    어제
    • 분류 전체보기 (163)
      • 개발 (81)
        • JAVA (29)
        • PYTHON (9)
        • AWS (15)
        • DOCKER (2)
        • PERCONA (2)
        • ORACLE (12)
        • MYSQL (1)
        • 알고리즘 (0)
        • 기타 (11)
      • 툴 (5)
        • MARKDOWN (1)
        • GIT (1)
        • DOCKER (1)
        • PyCharm (2)
        • IntelliJ (0)
      • 일상 (35)
        • 맛집 (6)
        • 카페 (2)
        • 요리 (4)
        • 글씨 연습 (2)
        • 그저 일상 (7)
        • 내돈 내산 (11)
        • 홍보 (1)
      • 국내 여행 (1)
      • 해외 여행 (15)
        • 체코-오스트리아 (10)
        • 일본 (5)
      • 암 일지 (26)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
    • 티스토리 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오닉스 리프3
    오스트리아
    오블완
    자바
    성모샘쉼터
    글씨연습
    mysql
    체코
    jdbc
    자바JDBC
    오라클
    저요오드식
    잘츠부르크
    재발
    요양병원
    Oracle
    히로시마
    동위원소
    티스토리챌린지
    갑상선 암
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
joolog
12. JAVA ect 클래스 (Math / Date / Calendar / SimpleDateFormat)
상단으로

티스토리툴바