C#의 DateTime.AddTicks() 메서드는 현재 DateTime 인스턴스에 지정한 수만큼의 틱(tick)을 더한 새로운 DateTime 객체를 반환합니다. 이 메서드는 원본 인스턴스를 변경하지 않고 새로운 값을 생성한다는 점이 특징입니다.
메서드 구문
DateTime.AddTicks() 메서드의 기본 구문은 다음과 같습니다.
public DateTime AddTicks(long ticks);
여기서 매개변수 ticks는 100나노초(nanosecond) 단위의 값을 나타냅니다. 즉, 1틱 = 100나노초이며, 음수 값을 전달하면 시간을 뺄 수도 있습니다.
예제 1: 틱 추가하기
다음 예제는 DateTime.AddTicks() 메서드를 사용하여 특정 날짜와 시간에 틱을 더하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 07, 25, 6, 20, 40);
DateTime d2 = d1.AddTicks(5000);
System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
System.Console.WriteLine("Initial Ticks = {0} ", d1.Ticks);
System.Console.WriteLine("New Ticks = {0} ", d2.Ticks);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DateTime = 25 July 2019, 06:20:40 Initial Ticks = 636996324400000000 New Ticks = 636996324400005000
출력 결과를 보면 초기 틱 값 636996324400000000에 5000틱이 더해져 새로운 값 636996324400005000이 반환된 것을 확인할 수 있습니다.
예제 2: 틱 빼기(음수 값 사용)
AddTicks() 메서드에 음수를 전달하면 시간에서 해당 틱만큼을 차감할 수 있습니다. 아래 예제를 통해 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 07, 25, 6, 20, 40);
DateTime d2 = d1.AddTicks(-5000);
System.Console.WriteLine("DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
System.Console.WriteLine("Initial Ticks = {0} ", d1.Ticks);
System.Console.WriteLine("New Ticks (subtracting) = {0} ", d2.Ticks);
}
}실행 결과
DateTime = 25 July 2019, 06:20:40 Initial Ticks = 636996324400000000 New Ticks = 636996324399995000
음수 값 -5000을 전달했더니 기존 틱 값에서 5000이 감소한 636996324399995000이 출력되었습니다.
정리
- DateTime.AddTicks()는 지정한 틱(100나노초) 만큼 시간을 더하거나 뺀 새로운 DateTime 객체를 반환합니다.
- 양수 값은 시간을 더하고, 음수 값은 시간을 뺍니다.
- DateTime 객체는 불변(immutable)이므로 원본 값은 변경되지 않습니다.
- 매우 정밀한 시간 계산이 필요한 경우 밀리초보다 세밀한 단위인 틱을 활용하면 유용합니다.