특정 날짜/시간의 차이를 구해야할 때가 간헐적으로 존재한다.

 

우리가 흔히 알고 있는 현재시간을 기준으로 삼아, Add로 시작하는 다양한 메서드를 사용해도 가능하다.

하지만 조금 더 정밀한 Ticks 라는 속성을 사용해서 간격을 구해본다.

 

Ticks 란?

  • 1s = 1000m/s
  • 1m/s = 10,000 ticks
  • 1s = 10,000,000 ticks

간단하게 수학적으로 표현해보면 위와 같다. 확실하게 정밀적으로 사용된다.

 

 

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 기준 날짜
var strandard = new DateTime(1988211);
 
// 현재 날짜
var current = DateTime.Now;
 
// 현재 날짜 - 기준 날짜
long diffTicks = current.Ticks - strandard.Ticks;
var diffSpan = new TimeSpan(diffTicks);
 
Console.WriteLine($"현재 시간 : {current}");
Console.WriteLine($"ticks : {diffTicks}");
 
// 기준 날짜와 현재 날짜의 차이를 일/시/분/초 로 표현 
Console.WriteLine($"{diffSpan.Days} days, {diffSpan.Hours} hours, {diffSpan.Minutes} minutes, {diffSpan.Seconds} seconds");
cs

 

기준날짜와 현재날짜의 차이를 디테일하게  표현한 코드값이다.

결과는 아래와 같다.

 

기준날짜 < 현재날짜
기준날짜 > 현재날짜

현재날짜가 기준날짜보다 크면 양수로

기준날짜가 현재날짜보다 크면 음수로 표현되므로 이점을 유의하자.

 

+ Recent posts