:원하는 포맷으로 날짜,시간 출력 / 날짜,시간 포맷형식에서 데이터값 추출
Date today = new Date();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat format3 = new SimpleDateFormat("오늘 날짜 : yyyy년도 MM월, 현재 시각 : hh시 mm분");
String strFormat1 = format1.format(today);
String strFormat2 = format2.format(today);
String strFormat3 = format3.format(today);
System.out.println("날짜 형식 지정 안 한 경우 : " + today);
System.out.println("strFormat1형식 : " + strFormat1);
System.out.println("strFormat2형식 : " + strFormat2);
System.out.println("strFormat3형식 : " + strFormat3);
String todayStr = "20210323";
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
// String에서 숫자부분만 추출
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date todayDate = format1.parse(todayStr);
Date tomorrowDate = format2.parse(tomorrowStr);
System.out.print(todayDate);
System.out.println();
System.out.print(tomorrowDate)
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
SimpleDateFormat format = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date tomorrowDate = format.parse(tomorrowStr);
Calendar cal = Calendar.getInstance();
cal.setTime(tomorrowDate);
System.out.println("날짜 변경 전 : "+ cal.getTime());
cal.add(Calendar.YEAR, 2); // 연도 수정
cal.add(Calendar.MONTH, 2); // 월 수정
cal.add(Calendar.DATE, 2); // 날짜 수정
cal.add(Calendar.HOUR_OF_DAY , 2); // 시 수정
cal.add(Calendar.MINUTE, 2); // 분 수정
cal.add(Calendar.SECOND, 2); // 초 수정
System.out.println("날짜 변경 후 : "+ cal.getTime());
String todayStr = "20210323";
String tomorrowStr = "2021년도 03월 24일 21시 30분 35초";
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy년도 MM월 dd일 hh시 mm분 ss초");
Date todayDate = format1.parse(todayStr);
Date tomorrowDate = format2.parse(tomorrowStr);
long dateGap = tomorrowDate.getTime() - todayDate.getTime();
long dateGapDay = dateGap / ( 24*60*60*1000);
dateGapDay = Math.abs(dateGapDay); //Math.abs는 인자값을 절대값으로 반환하는 함수(음수 양수 상관없이 양수로 반환)
System.out.println("두 날짜의 날짜 차이: "+dateGapDay);
// 로컬 컴퓨터의 현재 날짜 정보를 저장한 LocalDate 객체를 리턴
LocalDate currentDate = LocalDate.now();
// result : 2019-11-13
// 파라미터로 주어진 날짜 정보를 저장한 LocalDate 객체를 리턴한다.
LocalDate targetDate = LocalDate.of(2019,11,12);
//결과 : 2019-11-12
// 로컬 컴퓨터의 현재 시간 정보를 저장한 LocalDate 객체를 리턴.
LocalTime currentTime = LocalTime.now();
// 결과 : 18:34:22
// 파라미터로 주어진 시간 정보를 저장한 LocalTime 객체를 리턴.
LocalTime targetTime = LocalTime.of(12,33,35,22);
// 끝에 4번째 매개변수는 nanoSecond 인데 선택 이다
// 결과 : 12:32:33.0000022
// 로컬 컴퓨터의 현재 날짜와 시간 정보
LocalDateTime currentDateTime = LocalDateTime.now();
// 결과 : 2019-11-12T16:34:30.388
LocalDateTime targetDateTime = LocalDateTime.of(2019, 11, 12, 12, 32,22,3333);
// second,nanoSecond 매개변수는 선택
// 결과 : 2019-11-12T12:32:22.000003333
LocalDateTime currentDateTime = LocalDateTime.now();
// 더 하기는 plus***() 빼기는 minus***()
currentDateTime.plusDays(2)
// 결과 : 2019-11-14T12:32:22.000003333
import java.util.Arrays;
public class Java0713_1 {
public int solution(int[] people, int[] tshirts) {
int answer = 0;
Arrays.sort(people);
Arrays.sort(tshirts);
int tIdx=0;
LOOP1:
for (int p : people) {
LOOP2:
while(true){
if (tIdx<tshirts.length){
if( p <= tshirts[tIdx]) {
answer++;
tIdx++;
break LOOP2;
}
else if(tIdx+1<tshirts.length)
tIdx++;
else break LOOP1;
}
}
}
return answer;
}
}
: for문을 하나만 돌리고 인덱스값만 증가
import java.util.Arrays;
class Solution {
public int solution(int[] people, int[] tshirts) {
int distributed = 0;
int peopleIndex = 0;
Arrays.sort(people);
Arrays.sort(tshirts);
for (int tshirt : tshirts) {
if (peopleIndex >= people.length) {
break;
}
if (people[peopleIndex] <= tshirt) {
distributed++;
peopleIndex++;
}
}
return distributed;
}
}
import java.util.*;
public class Java0713_2 {
public String[] solution(String[][] booked, String[][] unbooked) {
boolean firstBoolean =true; // 첫번째 예약자 여부
String[] recent = new String[2]; // 가장 최근의 예약 정보 {에약시간,이름}
// booked 와 unbooked중에 가장 빠른 시간 먼저 꺼내기
Queue<String[]> bq = new LinkedList<>();
Queue<String[]> unq = new LinkedList<>();
for(String[] b:booked) bq.offer(b);
for(String[] ub:unbooked) unq.offer(ub);
int length = booked.length+unbooked.length;
String[] answer = new String[length];
for(int i=0;i<length;i++) {
String[] bStr = (!bq.isEmpty())? bq.peek():null;
String[] ubStr = (!unq.isEmpty())? unq.peek():null;
int bTime = Integer.parseInt(bStr[0].replace(":",""));
int ubTime = Integer.parseInt(ubStr[0].replace(":",""));
if(firstBoolean) {
if(bTime<ubTime) {
recent = bStr;
bq.poll();
}else {
recent = ubStr;
unq.poll();
}
firstBoolean = false;
}
else {
// first + 10분 숫자 변환
int firstP10 = Integer.parseInt(recent[0].replace(":",""))+10;
if(ubTime<firstP10 && bTime>firstP10) recent = ubStr;
else recent = bStr;
// ubTime이 그것보다 작고 bTime이 그것보다 크면 ubStr먼저
// 그 외 경우 bStr이 먼저
}
// answer에 이름 담고
answer[i] = recent[1];
}
return answer;
}
}
import java.util.stream.Collectors;
class Solution {
public String[] solution(String[][] booked, String[][] unbooked) {
String[] answer = {};
List<List<String>> bookedList = Arrays.stream(booked).map(Arrays::asList).collect(Collectors.toList());
List<List<String>> unbookedList = Arrays.stream(unbooked).map(Arrays::asList).collect(Collectors.toList());
SimpleDateFormat formatter = new SimpleDateFormat("hh:mm");
List<String> tempAnswer = new ArrayList<>();
Date endTime = null;
int length = Math.max(bookedList.size(), unbookedList.size());
int i = 0;
int j = 0;
Date bookedTime = null;
Date unbookedTime = null;
while (i < bookedList.size() || j < unbookedList.size()) {
if (bookedList.size() > i) {
bookedTime = formatter.parse(bookedList.get(i).get(0));
}
if (unbookedList.size() > j) {
unbookedTime = formatter.parse(unbookedList.get(j).get(0));
}
if (i == 0 && j == 0) {
endTime = bookedTime.compareTo(unbookedTime) >= 0 ? unbookedTime : bookedTime;
}
if (bookedTime.compareTo(unbookedTime) <= 0) {
tempAnswer.add(bookedList.get(i).get(1));
i++;
} else {
tempAnswer.add(unbookedList.get(j).get(1));
j++;
}
// endTime = endTime.;
}
answer = tempAnswer.toArray(String[]::new);
return answer;
}
}