쌓고 쌓다
[JAVA] Math, Calendar 클래스 본문
Math 클래스
- 기본 연산 메소드를 제공한다.
- 모든 메소드는 static으로 선언되어 있어 클래스 이름으로 호출한다.
- 각 메소드마다 오버로딩이 되어있어 인자 종류별로 실행하는 함수가 다름
Math 주요 메소드 사용 예제
public class Hongong {
public static void main(String args[]){
double a = Math.PI;
System.out.println(Math.PI);
System.out.println(Math.ceil(a)); // (ceil : 올림)
System.out.println(Math.floor(a)); // floor : 내림
System.out.println(Math.sqrt(9)); // sqrt : 제곱근
System.out.println(Math.exp(2)); // exp : e의 2승
System.out.println(Math.round(3.14)); // 반올림
System.out.println();
// [1,45] 사이의 랜덤 정수형 난수 5개 출력
for(int i=0;i<5;i++)
System.out.println((int)(Math.random()*45+1));
}
}
실행 결과
Math.random()로 난수 생성
그냥 random()은 0.0<x<1.0의 난수 발생한다.
여기서 1~100까지의 랜덤 정수 10개를 생성해보자.
생성 코드
for(int i=0;i<10;i++)
System.out.println((int)(Math.random()*100+1));
*100만하면 0~99까지의 수가 만들어지고 여기다 +1을 했기에
1~100까지의 수가 만들어지는 것이다.
random 클래스의 객체를 생성해서 사용
import java.util.Random;
public class Hongong {
public static void main(String args[]){
Random r = new Random();
int n = r.nextInt(); // 음수,양수,0 포함 정수 범위 난수 생성
int m = r.nextInt(100); // 0~99사이(0과 99 포함) 정수 난수 생성
double x = r.nextDouble(); // 0.0~1.0 사이의 실수 난수 생성
System.out.println(n);
System.out.println(m);
System.out.println(x);
}
}
실행 결과
Calendar 클래스
- public abstract class Calendar : 생성할 수 없음.
- 시간, 날짜 정보가 대부분 static field이다.
- ex, public static final int YEAR = 1;
Calendar 객체 생성
Calendar now = Calendar.getInstance();
-> Calendar.getInstance()는 현재 날짜와 시간 정보를 가진 Calendar 생성
-> Calendar는 추상 클래스라 new Calendar() 안 함.
날짜와 시간 알아내기
import java.util.Calendar;
import java.util.Random;
public class Hongong {
public static void main(String args[]){
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int mount = now.get(Calendar.MONTH)+1;
int minute = now.get(Calendar.MINUTE);
int second = now.get(Calendar.SECOND);
System.out.println(year + "/"+mount+"/"+minute+"/"+second);
}
}
필드
- YEAR : 년도
- MONTH : 달(0~11)
- HOUR : 시간(0~11)
- HOUR_OF_DAY : 24시간을 기준으로 현 시간
- SECOND : 초
- DAY_OF_MOUNTH : 현재 달의 날짜
- DAY_OF_WEEK : 현재 주의 요일(일요일:1, 토요일:7)
- AP_PM : 오전인지 오후인지
- MINUTE : 분
- MILLISECOND : 밀리초
'프로그래밍 > java' 카테고리의 다른 글
[JAVA] 명품 자바 프로그래밍 6장 Open Challenge (0) | 2022.05.29 |
---|---|
[JAVA] Collection, Generics, Vector, ArrayList (0) | 2022.05.26 |
[JAVA] StringToKenizer 클래스 (0) | 2022.05.22 |
[JAVA] StringBuffer 클래스 (0) | 2022.05.22 |
[JAVA] String 클래스 [ hashCode()와 identityHashCode() ] (0) | 2022.05.21 |
Comments