본문 바로가기

# 02/Java

[윤성우 열혈자바] 31-1. 시각과 날짜 관련 코드의 작성

반응형

시간이 얼마나 결렸지? : Instant 클래스


시각(時刻) 시간의 어느  시점

  ex) 지금 시각은 오후 2 30분입니다.


시간(時間) 어떤 시각에서 어떤 시각까지의 사이

  ex) 당신에게 주어진 시간은 이제 30분밖에 남지 않았습니다


public static void main(String[] args) {

   Instant start = Instant.now();  // 현재 시각 정보를 담음

   System.out.println("시작: " + start.getEpochSecond());

 반환 값은 1970-01-01 00:00:00' 기준으로 지나온 시간을  단위로 계산한 결과

   System.out.println("Time flies like an arrow.");

   

   Instant end = Instant.now();     // 현재 시각 정보를 담음

   System.out.println(": " + end.getEpochSecond());

   

   Duration between = Duration.between(start, end);     //  시각의  계산

     Duration 시각 차를 표현하기 위한 클래스

   System.out.println("밀리  단위 : " + between.toMillis());

}









오늘이 며칠이죠? : LocalDate 클래스


LocalDate 시각 정보가 생략된 날짜 정보 표현하기 위한 클래스


public static void main(String[] args) {

   // 오늘

   LocalDate today = LocalDate.now();

   System.out.println("Today: " + today);

   

   //  해의 크리스마스

   LocalDate xmas = LocalDate.of(today.getYear(), 12, 25);

   System.out.println("Xmas: " + xmas);

   

   //  해의 크리스마스 이브

   LocalDate eve = xmas.minusDays(1);

   System.out.println("Xmas Eve: " + eve);

}


LocalDate 인스턴스는 Immutable 인스턴스


public LocalDate minusYears(long yearsToSubtract) // LocalDate 메소드

public LocalDate minusMonths(long monthsToSubtract) // LocalDate 메소드

public LocalDate minusDays(long daysToSubtract) // LocalDate 메소드









날짜의 차를 표현하기 위한 Period 클래스


public static void main(String[] args) {

   // 오늘

   LocalDate today = LocalDate.now();

   System.out.println("Today: " + today);

   

   //  해의 크리스마스

   LocalDate xmas = LocalDate.of(today.getYear(), 12, 25);

   System.out.println("Xmas: " + xmas);

   

   // 크리스마스까지 앞으로 며칠?

   Period left = Period.between(today, xmas);

   System.out.println("Xmas까지 앞으로 " +

   left.getMonths() + " " + left.getDays() + "");

}


public int getYears()  // Period 메소드

public int getMonths()  // Period 메소드

public int getDays()  // Period 메소드









2시간 10 뒤에 어때? : LocalTime 클래스


LocalDate 날짜 정보를 나타내는 클래스, 반면 LocalTime 시각 정보를 나타내는 클래스


public static void main(String[] args) {

   // 현재 시각

   LocalTime now = LocalTime.now();

   System.out.println("지금 시각: " + now);

 

   // 2시간 10  화상 미팅 예정

   LocalTime mt = now.plusHours(2);

   mt = mt.plusMinutes(10);

   

   // 화상 미팅 시각

   System.out.println("화상 미팅 시각: " + mt);

}


public LocalTime plusHours(long hoursToAdd) // LocalTime 메소드

public LocalTime plusMinutes(long minutesToAdd) // LocalTime 메소드

public LocalTime plusSeconds(long secondstoAdd) // LocalTime 메소드









LocalTime 클래스와 Duration 클래스


public static void main(String[] args) {

   // PC방의 PC 이용 시작 시각

   LocalTime start = LocalTime.of(14, 24, 35);

   System.out.println("PC 이용 시작 시각: " + start);

   

   // PC방의 PC 이용 종료 시각

   LocalTime end = LocalTime.of(17, 31, 19);

   System.out.println("PC 이용 종료 시각: " + end);

   시각  계산에는  경우에도 Duration 클래스가 사용된다

   // PC 이용 시간 계산

   Duration between = Duration.between(start, end);

   System.out.println(" PC 이용 시간: " + between);

}









지금으로부터 22시간 35 뒤의 시각과 날짜는? : LocalDateTime 클래스


LocalDate 날짜 정보를, LocalTime 시각 정보를, LocalDateTime 시각 정보와 날짜 정보를 동시에 나타낸다.


public static void main(String[] args) {

   // 현재 날짜와 시각

   LocalDateTime dt = LocalDateTime.now();

   System.out.println(dt);

   

   // 영국 바이어와 22시간 35  화상 미팅 예정

   LocalDateTime mt = dt.plusHours(22);

   mt = mt.plusMinutes(35);

   

   // 영국 바이어와 화상 미팅 날짜와 시각

   System.out.println(mt);

}


public LocalDateTime plusYears(long years)

public LocalDateTime plusMonths(long months)

public LocalDateTime plusDays(long days)

public LocalDateTime plusHours(long hours)

public LocalDateTime plusMinutes(long minutes)

public LocalDateTime plusSeconds(long seconds)









 LocalDateTime 인스턴스 간의 시각과 날짜의 


public static void main(String[] args) {

   LocalDateTime today = LocalDateTime.of(2020, 4, 25, 11, 20);   // 현재 시각   

   LocalDateTime flight1 = LocalDateTime.of(2020, 5, 14, 11, 15); // 항공편1 출발 시간

   LocalDateTime flight2 = LocalDateTime.of(2020, 5, 13, 15, 30); // 항공편2 출발 시간

   

   // 빠른 항공편을 선택하는 과정

   LocalDateTime myFlight;

   if(flight1.isBefore(flight2))

       myFlight = flight1;

   else

       myFlight = flight2;

   

   // 빠른 항공편의 비행 탑승까지 남은 날짜 계산

   Period day = Period.between(today.toLocalDate(), myFlight.toLocalDate());

   // 빠른 항공편의 비행 탑승까지 남은 시간 계산

   Duration time = Duration.between(today.toLocalTime(), myFlight.toLocalTime());

   

   // 비행 탑승까지 남은 날짜와 시간 출력

   System.out.println(day);

   System.out.println(time);

}


public LocalDate toLocalDate()

   날짜에 대한 정보를 LocalDate 인스턴스에 담아서 반환

 

public LocalTime toLocalTime()

   시각에 대한 정보를 LocalTime 인스턴스에 담아서 반환



반응형