[220930] Math, Calendar

킹발·2022년 9월 30일
0

Java

목록 보기
12/12
post-thumbnail

Math

Math클래스는 기본적인 수학계산에 유용한 메서드로 구성되어 있다.

  • Math클래스의 생성자는 private이기 때문에 다른 클래스에서 Math인스턴스를 생성할 수 없다.
  • Math클래스에는 인스턴스 변수가 없고 static 메서드 + static 상수만 가지고 있기 때문에 인스턴스를 생성할 필요가 없다.

Math의 메서드

abs() - 절댓값

int i = Math.abs(-10);
// i = 10

ceil() - 올림

double i = Math.ceil(10.1);
// i = 11;

floor() - 버림

double i = Math.floor(10.8);
// i = 10.0

max() - 둘 중 큰 것

int i = Math.max(1,5);
// i = 5

min() - 둘 중 작은 것

int i = Math.max(1,5);
// i = 1

random()

  • 0.0 ~ 1.0 범위의 임의의 double값을 반환
double d = Math.random()
// 0.0 <= d <1.0

예제

  • 1~100 중 랜덤 값
int i = (int)(Math.random() * 100) + 1

rint()

  • 주어진 double값과 가장 가까운 정수값을 double형으로 반환
  • 두 정수가 정가운데 있는 값(1.5, 2.5, 3.5 등)은 짝수 반환
double d = Math.rint(1.5);
// d = 2.0;

double d1 = Math.rint(4.5);
// d = 4.0;

round() - 소수점 첫째자리에서 반올림

long l = Math.round(1.2);
// l = 1

Calendar

  • Calendar는 추상클래스이기 때문에 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 한다.
Calendar cal = Calendar.getInstance();

메서드

import java.util.*;

class CalendarEx1 {
    public static void main(String[] args)
    {  // 기본적으로 현재날짜와 시간으로 설정된다.
        Calendar today = Calendar.getInstance();
        
        System.out.println("이 해의 년도 : " + today.get(Calendar.YEAR));
        System.out.println("월(0~11, 0:1월): " + today.get(Calendar.MONTH));
        // DATE와 DAY_OF_MONTH는 같다.
        System.out.println("이 달의 몇 일: " + today.get(Calendar.DATE));
        System.out.println("이 달의 몇 일: " + today.get(Calendar.DAY_OF_MONTH));
        System.out.println("이 해의 몇 일: " + today.get(Calendar.DAY_OF_YEAR));
        System.out.println("요일(1~7, 1:일요일): "
                + today.get(Calendar.DAY_OF_WEEK)); // 1:일요일, 2:월요일, ... 7:토요일
        
        System.out.println("시간(0~11): " + today.get(Calendar.HOUR));
        System.out.println("시간(0~23): " + today.get(Calendar.HOUR_OF_DAY));
        System.out.println("분(0~59): " + today.get(Calendar.MINUTE));
        System.out.println("초(0~59): " + today.get(Calendar.SECOND));
        
        System.out.println("이 달의 마지막 날: "
                + today.getActualMaximum(Calendar.DATE) ); // 이 달의 마지막 일을 찾는다.
    }
}

Date와 Calendar간의 변환

  1. Calendar를 Date로 변환

    Calendar cal = Calendar.getInstance();
    ...
    Date d = new Date(cal.getTimeInMillis()); // Date(long date)
  2. Date를 Calendar로 변환

    Date d = new Date();
    ...
    Calendar cal = Calendar.getInstance();
    cal.setTime(d)

0개의 댓글