본문 바로가기
Edu/19. VBA

[VBA]날짜 함수

by Lacuna028 2022. 2. 14.

* 현재 날짜와 시간(특별한 인자를 요구하지 않음)

- now() : date() + time() 값 반환. 연, 월, 일, 시, 분, 초 반환

- date() : 연, 월, 일을 시스템으로 받아와서 전달

- time() : 시, 분, 초를 시스템으로부터 받아와서 전달

 

 

 

* 날짜의 부분처리 함수

- year(x1), month(x1), day(x1)

x1: 날짜 유형으로 인자가 전달되어야 함

- hour(x1), minute(x1), second(x1)

x1: 시간 유형으로 인자가 전달되어야 함

- weekday(x1)

x1: 날짜 유형으로 인자가 전달되어야 함

 

ex)

- year(now()), month(2020-06-07"), day(date)

- hour(now()), minute(time()), second("2:02:04")

- weekday(date)

단, weekday는 월, 화, 수, ...가 아닌 1, 2, 3, ... 형태로 나타남. 따라서 월, 화, 수, ... 로 나타내기 위해서는 한번 더 변환 과정을 거쳐야 함.(일=1, 월=2, ... 토=7)

 

 

 

* 요일 변경

if elseif else 문을 사용하거나 select case문을 사용하면 됨. 이 이 케이스의 경우 select case문을 사용하는 것이 더 유용함.

 

 

 

* 시간 차

datediff(x1, x2, x3)

x1: 두 날짜 사이의 간격을 어떤 기준에 의해 출력해줄 것인지를 정하는 인자. 예로 들어 몇년의 차이가 있는지, 몇개월의 차이가 있는지, 몇일의 차이가 있는지, 몇요일의 차이가 있는지를 결정.

x2: 비교대상 첫번째 날짜값

x3: 비교대상 두번째 날짜값

 

x1 인자값 종류:

- year: YYYY

- month: M

- day : d

- quarter : q

- week : ww 또는 w

- hour : h

- Minute : n

- second : s

 

ex) datediff("YYYY", "2015-01-01", now())

 

* 날짜 이동: 날짜를 원하는 날짜로 이동시켜주는 함수

dateadd(x1, x2, x3)

x1: 기준이 되는 인자. 연도로 이동할 것인지, 월 이동 할 것인지, 일 이동 할 것인지 결정

x2: 얼마만큼의 간격으로 이동할 것인지를 결정하는 인자.

x3: 이동하게 될 대상 날짜

 

ex)

dateadd("YYYY", 10, now)

dateadd("D", -10, now)