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

C# DateTime 시간 함수 총정리: 주요 메서드와 AddMilliseconds 활용 예제


C# DateTime 시간 함수란?

C#의 DateTime 구조체는 날짜와 시간을 함께 다루는 강력한 도구입니다. 하루 중 지나간 시간(시, 분 등)을 계산하는 것처럼 날짜와 시간 모두에 대한 다양한 메서드와 속성을 제공합니다.

이 글에서는 그중에서도 시간(time) 관련 함수에 초점을 맞춰 살펴보겠습니다.

모든 함수의 전체 목록은 MSDN(Microsoft Developer Network) 공식 문서를 참고하시기 바랍니다.

C# 주요 시간 관련 메서드

번호메서드 & 속성
1AddDays(Double)
현재 인스턴스 값에 지정된 일수를 더한 새로운 DateTime을 반환합니다.
2AddHours(Double)
현재 인스턴스 값에 지정된 시간 수를 더한 새로운 DateTime을 반환합니다.
3AddMilliseconds(Double)
현재 인스턴스 값에 지정된 밀리초를 더한 새로운 DateTime을 반환합니다.
4AddMinutes(Double)
현재 인스턴스 값에 지정된 분을 더한 새로운 DateTime을 반환합니다.
5AddSeconds(Double)
현재 인스턴스 값에 지정된 초를 더한 새로운 DateTime을 반환합니다.
6AddYears(Int32)
현재 인스턴스 값에 지정된 연도를 더한 새로운 DateTime을 반환합니다.

AddMilliseconds() 메서드 예제

위 시간 함수 중 하나인 AddMilliseconds(Double) 메서드를 사용하여 현재 DateTime 값에 지정된 밀리초를 더하는 방법을 알아보겠습니다.

예제 코드

using System;

public class Demo {
    public static void Main() {
        string dateFormat = "MM/dd/yyyy hh:mm:ss.fffffff";
        DateTime dateCurrent = new DateTime(2018, 7, 23, 13, 0, 0);
        Console.WriteLine("Original date: {0} ({1:N0} ticks)\n", dateCurrent.ToString(dateFormat), dateCurrent.Ticks);

        DateTime dateNew = dateCurrent.AddMilliseconds(1);
        Console.WriteLine("Next date: {0} ({1:N0} ticks)", dateNew.ToString(dateFormat), dateNew.Ticks);

    }
}

실행 결과

Original date: 07/23/2018 01:00:00.0000000 (636,679,476,000,000,000 ticks)
Next date: 07/23/2018 01:00:00.0010000 (636,679,476,000,010,000 ticks)

결과 분석

실행 결과를 보면 원래 시각(2018년 7월 23일 오전 1시)에 1밀리초가 더해져 시간 문자열의 소수점 이하 자릿수 값이 변경되었음을 확인할 수 있습니다.

또한 내부적으로 저장되는 틱(tick) 값이 정확히 10,000만큼 증가했습니다. .NET에서 1틱은 100나노초에 해당하므로, 1밀리초 = 10,000틱이라는 규칙이 코드 실행 결과에도 그대로 반영됩니다.

이처럼 DateTime의 Add 계열 메서드는 원본 값을 변경하지 않고 새로운 DateTime 객체를 반환하기 때문에, 기존 데이터를 안전하게 유지하면서 시간 계산을 수행할 수 있다는 장점이 있습니다.