C#의 DateTime.AddMilliseconds() 메서드는 현재 DateTime 인스턴스에 지정된 밀리초를 더한 새로운 DateTime 객체를 반환하는 메서드입니다. 이 메서드는 원본 값을 변경하지 않고 새로운 날짜·시간 값을 생성하므로, 시간 계산이 필요한 다양한 상황에서 안전하게 활용할 수 있습니다.
메서드 구문
DateTime.AddMilliseconds() 메서드의 기본 구문은 다음과 같습니다.
public DateTime AddMilliseconds (double mSec);
여기서 매개변수 mSec는 더하거나 뺄 밀리초 값을 나타냅니다. 양수를 전달하면 시간이 앞으로 이동하고, 음수를 전달하면 시간이 뒤로 이동합니다.
예제 1 – 밀리초 더하기
다음은 DateTime.AddMilliseconds() 메서드를 사용하여 특정 시간에 밀리초를 더하는 예제입니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 11, 10, 5, 0, 25);
DateTime d2 = d1.AddMilliseconds(1000);
System.Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
System.Console.WriteLine("\nNew DateTime (After adding milliseconds) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
}
}실행 결과
Initial DateTime = 10 November 2019, 05:00:25 New DateTime (After adding milliseconds) = 10 November 2019, 05:00:26
위 예제에서 1000밀리초(1초)를 더했기 때문에 기존 시간 05:00:25에서 1초가 증가해 05:00:26이 된 것을 확인할 수 있습니다.
예제 2 – 음수 값으로 밀리초 빼기
AddMilliseconds() 메서드에 음수 값을 전달하면 지정한 밀리초만큼 시간을 되돌릴 수 있습니다.
using System;
public class Demo {
public static void Main(){
DateTime d1 = new DateTime(2019, 10, 5, 9, 0, 10);
DateTime d2 = d1.AddMilliseconds(-2000);
System.Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
System.Console.WriteLine("\nNew DateTime (After subtracting milliseconds) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
}
}실행 결과
Initial DateTime = 05 October 2019, 09:00:10 New DateTime (After subtracting milliseconds) = 05 October 2019, 09:00:08
위 예제에서는 -2000밀리초(-2초)를 전달하여 기존 시간 09:00:10에서 2초가 감소한 09:00:08이 출력되었습니다.
정리
DateTime.AddMilliseconds() 메서드는 밀리초 단위의 정밀한 시간 연산이 필요할 때 유용합니다. 주요 특징을 요약하면 다음과 같습니다.
- 지정한 밀리초를 현재 DateTime 값에 더한 새로운 DateTime 객체를 반환합니다.
- 매개변수는 double 타입이므로 소수점 단위의 밀리초도 처리할 수 있습니다.
- 음수 값을 사용하면 시간을 과거 방향으로 이동시킬 수 있습니다.
- 원본 DateTime 값은 변경되지 않으므로 불변성(immutability)이 보장됩니다.