Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# DateTime.AddTicks() 메서드 완벽 정리: 틱(Tick) 단위 시간 더하기

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)이므로 원본 값은 변경되지 않습니다.
  • 매우 정밀한 시간 계산이 필요한 경우 밀리초보다 세밀한 단위인 틱을 활용하면 유용합니다.