RPA

[RPA] DateTime 객체 관련 정리

wisdom-tistory 2025. 6. 20. 16:44

안녕하세요 :)
BrityRPA 에서 개발 시에 사용되는
"DateTime" 객체 관련 정리입니다.
 
RPA 과제는
날짜를 고려하는 과제들이 많은데,

객체를 변수에 담아
그때 그때 추출하여 쓰면
굉장히 유용하더라구요!
 

[ DateTime 객체 ]

1. 현재일시
DateTime.Now

Ex)
$> DateTime.Now
=> 2023-04-26 오후 2:10:52

2. 금일
DateTime.Today

Ex)
$> DateTime.Today
=> 2023-04-26 오전 12:00:00
반응형

3. DateTime 객체에서 연,월,일,요일,연중일수 출력
RESULT.Year                => 연(int)    
RESULT.Month             => 월(int)    
RESULT.Day                => 일(int)    
RESULT.DayOfWeek      => 요일(String)    
RESULT.DayOfYear        => 연중일수(int)

Ex)
RESULT = DateTime.Parse('2023-01-02');

$> RESULT.Year        //연도 출력    
=> 2023

$> RESULT.Month       //월 출력    
=> 1                  //1~9월까지는 한자릿수로 표현

$> RESULT.Day         //일 출력
=> 2                  //1~9일까지는 한자릿수로 표현

$> RESULT.DayOfWeek   //요일 출력
=> Monday

$> RESULT.DayOfYear   //연중일수
=> 2

/*
해당 기능을 사용하게 될 경우, 연,월,일 등에서 int 타입으로 반환되는 기능은
몇년 뒤, 며칠 뒤 등의 값을 구할 때 Number 타입으로 변환하지 않고
바로 +,- 등을 사용하여 값을 구할 수 있습니다.
*/

$> RESULT.Day + 1     //2(일) + 1(일) = 3(일)
=> 3

4. 지정된 월의 일수 출력
DateTime.DaysInMonth(int year, int month)    => int
year       연도
month    월(1부터 12까지)

Ex)
RESULT = DateTime.Parse('2023-01-02');

//과제별로 해당 월의 일수 or 마지막 날을 알아야 하는 경우 사용 가능
$> DateTime.DaysInMonth(2023, 3)    
=> 31        //2023년 3월의 총일수, 말일

$> DateTime.DaysInMonth(RESULT.Year, RESULT.Month)    
=> 31        //2023년 1월의 총일수, 말일

5. 기준일로부터 연,월,일 가감
DateTime.AddDays(double value)     //일     => DateTime
DateTime.AddMonths(int months)    //월     => DateTime
DateTime.AddYears(int value)          //연     => DateTime

Ex)
RESULT = DateTime.Parse('2023-01-02');

$> RESULT.AddDays(-1).ToString('yyyy년 MM월 dd일')        
=> 2023년 01월 01일

$> RESULT.AddMonths(-1).ToString('yyyy년 MM월 dd일')    
=> 2022년 12월 02일

$> RESULT.AddYears(-1).ToString('yyyy년 MM월 dd일')    
=> 2022년 01월 02일

6. 윤년여부 확인
윤년이란, 양력에서는 4년마다 한 번씩 
2월을 29일로 하는 해를 말합니다.

DateTime.IsLeapYear(int year)    => Boolean
//윤년이면 true, 아니면 false

Ex)
$> DateTime.IsLeapYear(2024)    
=> true

$> DateTime.IsLeapYear(2023)    
=> false

7. 문자열을 DateTime 으로 변환
DateTime.Parse(String)        => DateTime

Ex)
$> DateTime.Parse('2023-04-20')    
=> 2023-04-20 오전 12:00:00

$> DateTime.Parse('2023-04')    
=> 2023-04-01 오전 12:00:00


문자열을 DateTime 으로 
변환하여 사용하게 되면 
요건에 따라 ToString 을 이용하여 
자유롭게 서식에 맞추어 표현하고,

연도,월,일 등을 변수를 
많이 선언하지 않고도
DateTime 함수, 속성 등을 이용하여
변수 하나로 바로바로 
출력할 수 있는 장점이 있습니다.


8. ToString
기준일 : 2023-01-02 15:02:00

------------------------
yyyy            2023
yy               23
------------------------
MMMM       1월
MMM          1
MM             01
M               1월 2일
------------------------
dddd         월요일
ddd           월
dd             02
d               2
------------------------
HH            15 or 00    // 12시간 이전일 경우 두자릿수로 표현
H              15 or 0      // 12시간 이전일 경우 한자릿수로 표현
hh             03
h               3
------------------------
mm           02
m              2
------------------------
ss             00
s              0
------------------------

Ex)
RESULT = DateTime.Parse('2023-01-02');

$> RESULT.ToString('yyyy')        
=> 2023

$> RESULT.ToString('yy')        
=> 23

$> RESULT.ToString('MMMM')        
=> 1월

$> RESULT.ToString('MMM')        
=> 1        //1~9월 한자릿수 표현

$> RESULT.ToString('MM')        
=> 01

$> RESULT.ToString('MM월')        
=> 01월

$> RESULT.ToString('M')        
=> 1월 2일

$> RESULT.ToString('d')
=> 2023-01-02

$> RESULT.ToString('dd')
=> 01

$> RESULT.ToString('ddd')
=> 일

$> RESULT.ToString('dddd')
=> 일요일

$> RESULT.ToString('yyyy-MM-dd HH:mm:ss')    
=> 2023-01-02 15:02:00

$> RESULT.ToString('yyyy-MM-dd')    
=> 2023-01-02              //두자릿수로 월과 일이 표현

$> RESULT.ToString('yyyy-MMM-d')    
=> 2023-1-2                //한자릿수로 월과 일이 표현
 
$> RESULT.ToString('yyyyMMdd22')    
=> 2023010222                        //특정숫자를 추가하여 표현가능(영문자 사용 시, 다른 의미와 중복되는 경우 있어 사용 지양)

$> RESULT.ToString('yyyyMMdd_엑셀파일') + '.xlsx'     
=> 20230102_엑셀파일.xlsx        //특정문자를 추가하여 표현가능(영문자 사용 시, 다른 의미와 중복되는 경우 있어 사용 지양)

9. 날짜 대소비교
DateTime일 경우, 날짜 대소비교 가능

Ex)
RESULT = DateTime.Parse('2023-01-02');

$> RESULT > RESULT.AddDays(-1)    // 2023-01-02 오전 12:00:00 > 2023-01-01 오전 12:00:00
=> true

$> RESULT.ToString('yyyy-MM-dd') > RESULT.AddDays(-1).ToString('yyyy-MM-dd')    // 2023-01-02 > 2023-01-01
=> true

10. DateTime 객체 관련 기능 링크
https://learn.microsoft.com/ko-kr/dotnet/api/system.datetime?view=net-7.0

 

DateTime 구조체 (System)

일반적으로 날짜와 시간으로 표현된 시간의 한 순간을 나타냅니다.

learn.microsoft.com


새로운 정보나 궁금한 점은
댓글로 같이 공유해요 >_<

감사합니다 :)

반응형