이번 포스팅에서는 프로그램 개발 시 자주 사용하는 시간, 시간 연산, 시간 측정에 대해서 알아보겠습니다.
DateTime은 값 형식의 구조체로 날짜와 시간에 대한 정보를 가져올 때 사용합니다.
정적 속성 중에서 가장 많이 사용하는 Now와 Year, Month, Day, Hour, Minute, Millisecond는 getter를 통해서 바로 참조가 가능합니다.
// 현재 날짜와 시간 구하기
DateTime now = DateTime.Now;
Console.WriteLine(now);
// 올해의 기념일 지정 출력
DateTime dayChristmas = new DateTime(now.Year, 12, 25);
Console.WriteLine(dayChristmas);
// 출력결과
콘솔에 현재 날짜와 시간, 그리고 크리스마스가 출력된 것을 볼 수 있습니다.
날짜의 포맷을 지정하여 출력할 수도 있는 데 사용법은 아래와 같다.
// 날짜 포맷 변경
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy-MM-dd HH:mm:dd"));
Console.WriteLine(String.Format("{0:yyyy.MM.dd HH:mm}", now));
// 출력 결과
다음은 TimeSpan 사용법에 대해 살펴보겠습니다.
DateTime 타입에 대해 유일하게 허용되는 사칙연산이 빼기입니다. DateTime을 통한 빼기 연산을 하게 되면 시간 간격을 나타내는 TimeSpan으로 출력할 수 있습니다.
사용방법은 매우 간단합니다.
// D-Day 남은 날짜
DateTime dayChristmas = new DateTime(DateTime.Now.Year, 12, 25);
DateTime now = DateTime.Now;
TimeSpan gap = dayChristmas - now;
Console.WriteLine("남은 날짜 : " + gap.TotalDays);
// 출력 결과
마지막으로 Stopwatch에 대해 살펴보겠습니다.
어릴 적에 Stopwatch기능이 있는 전자시계를 차고 다니는 친구들을 보면서 많이 부러워했던 기억이 나는데요,
이 Stopwatch는 소스코드 내에서 어떤 함수의 수행 시간을 구하는데 매우 유용합니다.
특히 병렬 프로그래밍 등에서 성능 향상 측정을 위해 많이 사용됩니다.
사용 방법은 아래와 같습니다.
int nCount = 0;
Stopwatch st = new Stopwatch( );
st.Start( );
for(int i = 1; i <= 100; ++i)
{
nCount += i;
}
st.Stop( );
Console.WriteLine("백까지의 합은 : " + nCount + ", 계산 시간 : " + st.Elapsed.ToString());
// 출력 결과
Stopwatch를 사용하기 위해서는 using System.Diagnostics; 네임스페이스를 추가시켜줘야 합니다.
측정을 시작하는 곳에서 Start( ) 함수 호출, 측정이 종료되는 지점에서 Stop( ) 함수 호출만 하면 구간 내 수행 시간을 구해낼 수 있으며 위에서 사용했던 TimeSpan을 이용해서 아래와 같이 Format을 지정하여 출력할 수도 있습니다.
이상으로 DateTime과 TimeSpan, Stopwatch에 대한 포스팅을 마치도록 하겠습니다.
감사합니다.
'프로그래밍' 카테고리의 다른 글
암호화 복호화 모듈 만들기[C#] (0) | 2020.06.23 |
---|---|
[C#] 파일정보 로딩하여 Excel로 저장하기 (3) | 2020.06.17 |
[c#]트레이 아이콘(Tray Icon) 적용하기 (2) | 2020.06.11 |
[MFC]라이브러리 개념과 사용 예제 (0) | 2020.06.05 |
메시지 박스 디자인 살펴보기 (0) | 2020.06.04 |
댓글