닷넷/C#

C# 시간 계산 두 번 째 (TimeSpan, DateTimeOffset)

FreeBear 2023. 4. 6. 10:54
반응형

2020.09.11 - [C#] - C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기)

DateTime 형식일 때, DateTime의 Add함수를 이용 한 날짜, 시간 계산은 이전 글을 참고한다.

 

DateTime, TimeSpan, DateTimeOffset을 사용하여 시간 계산을 수행하는 방법은 다음과 같다.

using System;

namespace DateTimeExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 현재 시간 구하기
            DateTime currentTime = DateTime.Now;
            Console.WriteLine($"현재 시간: {currentTime}");
            
            //////////////////////
            // 1. DateTime

            // 내일 이 시간 구하기
            DateTime tomorrow = currentTime.AddDays(1);
            Console.WriteLine($"내일 이 시간: {tomorrow}");

            // 시간 차이 계산하기
            // 참고로 DateTime에서 DateTime을 빼거나 더하면 자료형은 TimeSpan이 된다.
            TimeSpan timeDifference = tomorrow - currentTime;
            Console.WriteLine($"시간 차이: {timeDifference}");
            
            ////////////////////
            // 2. TimeSpan
            // 1시간 30분의 TimeSpan 객체 생성
            TimeSpan timeToAdd = new TimeSpan(1, 30, 0);

            // 1시간 30분 후 구하기
            DateTime newTime = currentTime + timeToAdd;
            Console.WriteLine($"1시간 30분 후: {newTime}");
            
            ////////////////////
            // 3. DateTimeOffset
            // 현재 시간과 시간대 정보를 포함한 DateTimeOffset 객체 구하기
            DateTimeOffset currentOffsetTime = DateTimeOffset.Now;
            Console.WriteLine($"현재 시간(시간대 포함): {currentOffsetTime}");

            // 5시간 후의 시간과 시간대 정보를 포함한 DateTimeOffset 객체 구하기
            DateTimeOffset laterOffsetTime = currentOffsetTime.AddHours(5);
            Console.WriteLine($"5시간 후(시간대 포함): {laterOffsetTime}");

            // 시간 차이 계산하기
            TimeSpan offsetDifference = laterOffsetTime - currentOffsetTime;
            Console.WriteLine($"시간 차이: {offsetDifference}");
        }
    }
}
결과

현재 시간: 2023-04-06 10:30:00
내일 이 시간: 2023-04-07 10:30:00
시간 차이: 1.00:00:00 (1일)

1시간 30분 후: 2023-04-06 12:00:00

현재 시간(시간대 포함): 2023-04-06 10:30:00 +09:00
5시간 후(시간대 포함): 2023-04-06 15:30:00 +09:00
시간 차이: 05:00:00 (5시간)
반응형