728x90
반응형
(22.8.4)
# 34강 java.util 패키지2
- java.time - 자바에서 날짜와 시간을 다루기 우ㅢ한 패키지
- LocalDate클래스 - 날짜 정보를 저장
// now() 현재 날짜 ,of() 특정 날짜
- LocalTime 클래스 - 시간 정보를 저장
// now() 현재 시간 ,of() 특정 시간
- LocalDateTime 클래스 - 날짜 정보와 시간 정보 모두 저장 메서드는 위와 동일
- ZoneDateTime 클래스 - 저장한 날자와 방식을 동일하게
- Instanr 클래스 - 특정 시점의 타임스탬프 객체
- with()메서드 - TemporalAdjuster 타입을 인자로 받아 특정한 날짜를 리턴
- Timer/TimerTask 클래스 - 개발자가 원하는 특정한 시간에 코드를 실행하거나 특정 시간 간격으로 반복되는 작업을 처리한다.
package day34;
import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
public class TemproralPrac {
public static void main(String[] args) {
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
LocalDateTime new_ldt;
new_ldt =ldt.with(TemporalAdjusters.firstDayOfYear());
System.out.println("올해의 첫 번째 날: "+new_ldt);
new_ldt=ldt.with(TemporalAdjusters.lastDayOfYear());
System.out.println("올해의 마지막 날: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.firstDayOfMonth());
System.out.println("이번 달의 첫 번째 날: "+new_ldt);
new_ldt=ldt.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("이번 달의 마지막 날: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
System.out.println("이번 달의 첫 번째 월요일: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.lastInMonth(DayOfWeek.SUNDAY));
System.out.println("이번 달의 마지막 일요일: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
System.out.println("돌아오는 금요일: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY));
System.out.println("오늘을 포함한 다음 금요일: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
System.out.println("지난 월요일: "+new_ldt);
new_ldt =ldt.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
System.out.println("오늘을 포함한 지난 월요일: "+new_ldt);
}
}
package day34;
import java.time.LocalTime;
public class WithPrac2 {
public static void main(String[] args) {
LocalTime lt=LocalTime.now();
System.out.println(lt);
LocalTime now_time=lt.withHour(3).withMinute(25).withSecond(24).withNano(33333);
System.out.println(now_time);
}
}
apackage day34;
import java.time.LocalDateTime;
public class After2 {
public static void main(String[] args) {
LocalDateTime ldt= LocalDateTime.now();
System.out.println(ldt);
LocalDateTime end_time=LocalDateTime.of(2017,6,24,12,00);
System.out.println(end_time);
if(ldt.isAfter(end_time)) {
System.out.println("유통기한이 지났습니다!");
}
else {
System.out.println("유통기한이 아직 지나지 않ㄹ았습니다!");
}
}
}
package day34;
import java.time.LocalDate;
public class TimePlus {
public static void main(String[] args) {
LocalDate ld= LocalDate.now();
System.out.println(ld);
LocalDate ld2=ld.minusYears(2).plusMonths(3).minusDays(4);
System.out.println(ld2);
//자동 변환
LocalDate ld3 = ld2.minusDays(3);
System.out.println(ld3);
//주 더하기
LocalDate ld4 = ld3.plusWeeks(3);
System.out.println(ld4);
}
}
# 35강 java.util 패키지3
- Scanner 클래스 - 문자 데이터를 읽어오는데 도움을 주는 클래스
구현)
Scanner 변수 = new Scanner(System.in);// 입출력 스트림과의 연결
변수.임렵메서드();
- BigDecimal 클래스 - 정확한 소수점 연산을 해야할 때 사용
- formatting - 데이터의 형식을 지정하는 것을 의미
package day35;
import java.math.BigDecimal;
public class BigDecimal1 {
public static void main(String[] args) {
double a=24.3953;
double b=50.343998;
System.out.println(a+b);
BigDecimal number1= new BigDecimal(String.valueOf(a));
BigDecimal number2= new BigDecimal(String.valueOf(b));
System.out.println(number1.add(number2));
}
}
package day35;
import java.text.DecimalFormat;
public class Format1 {
public static void main(String[] args) {
String [] pattern= {
"###.###",
"000.000",
"-###.###",
"000000.00%"};
//형식화 전 배열
double [] arr= {1.3,3.33,124.243,242};
for(int p=0;p<pattern.length;p++) {
DecimalFormat d = new DecimalFormat(pattern[p]);
System.out.println("<<<<<"+pattern[p]+">>>>>");
for(int i=0;i<arr.length;i++) {
// 형식화 후 배열
System.out.println(d.format(arr[i]));
}
}
}
}
package day35;
import java.io.FileInputStream;
import java.util.Scanner;
public class Prac {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("src//day35//sample.txt");
Scanner s = new Scanner(fis);
while(s.hasNext()) {
System.out.println(s.nextLine());
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
package day35;
import java.util.Scanner;
public class Scanner1 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name= sc.nextLine();
System.out.println(name+"님 환영합니다.");
}
}
# 36상 컬렉션 프레임웍1
- 컬렉션 프레임웍 - 데이터를 효율적으로 다루기 위한 클래스들의 집합, 자바에서 제공하는 자료구조
- 종류 set, List, Queue, Map
- 자료구조 - 자료들을 저장할 때, 효율적인 구조로 저장하는 것(데이터 구조)
- 제네릭 - 클래스가 다룰 객체를 미리 명시하는 기법 (== 일반화)
- 제네릭은 모든 종류의 타입을 다룰 수 있도록, 클래스나 메서드를 타입 매개변수를 이용하여 선언한 기법
사용법) 클래스 명 뒤에 <E> , <K>, <V> 와 같은 형식으로 사용
- E - 배열이나 집합들의 요소 타입을 지정
- T - 변수의 자료형과 같은 타입을 지정
- S, U - 여러개의 제네릭 기법을 사용할 때 많이 사용
- K - 키 타입 지정시 사용
- V - 값 타입 지정 시 사용
package day34;
public class Day34_1 {
public static void main(String[] args) {
Value v = new Value();
v.<Integer>typeSearch(3);
v.typeSearch(3.14);
v.typeSearch(3.14f);
v.typeSearch('a');
}
}
class Value{
public <T> void typeSearch(T x) {
if(x instanceof Integer) {
System.out.println(x+"정수입니다.");
}
else if(x instanceof Double || x instanceof Float) {
System.out.println(x+"는 실수입니다.");
}
else if(x instanceof Character) {
System.out.println(x+"는 문자형입니다.");
}
}
}
package day34;
public class Day34_2 {
public static void main(String[] args) {
A<Integer> a1=new A<>();
a1.x=10;
a1.y=20;
System.out.println(a1.x+a1.y);
A<String>a2 = new A<>();
a2.x="hello";
a2.y="world";
System.out.println(a2.x+a2.y);
}
}
class A<T>{
T x;
T y;
}
반응형
'Java > Java 인강' 카테고리의 다른 글
Java 인강 필기 12 (1) | 2022.10.02 |
---|---|
Java 인강 필기 11 (0) | 2022.10.02 |
Java 인강 필기9 (0) | 2022.10.02 |
Java 인강 필기 8 (0) | 2022.10.02 |
Java 인강 필기 7 (0) | 2022.10.02 |