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

C# TimeSpan.Add() 메서드 – 시간 간격을 더하는 방법과 예제 코드

C#의 TimeSpan.Add() 메서드는 지정한 TimeSpan 객체와 현재 인스턴스의 값을 더한 결과를 담은 새로운 TimeSpan 객체를 반환합니다. 원본 인스턴스는 변경되지 않으며, 항상 새 객체가 생성된다는 점에 유의하세요.

문법(Syntax)

메서드의 기본 문법은 다음과 같습니다.

public TimeSpan Add (TimeSpan span);

매개변수 span은 현재 인스턴스에 더할 시간 간격을 나타냅니다. 만약 연산 결과가 TimeSpan.MinValue보다 작거나 TimeSpan.MaxValue보다 커지면 OverflowException이 발생할 수 있습니다.

예제 1

먼저 Add() 메서드의 기본적인 동작을 살펴보겠습니다.

using System;
public class Demo {
   public static void Main(){
      TimeSpan span1 = new TimeSpan(2, 17, 20, 30);
      TimeSpan span2 = new TimeSpan(3, 18, 25, 25);
      TimeSpan span3 = new TimeSpan(-8, 30, 0);
      TimeSpan res1 = span1.Add(span2);
      TimeSpan res2 = span2.Add(span3);
      Console.WriteLine("Final Timespan (TimeSpan1 + TimeSpan2) = "+res1);
      Console.WriteLine("Final Timespan (TimeSpan2 + TimeSpan3) = "+res2);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Final Timespan (TimeSpan1 + TimeSpan2) = 6.11:45:55
Final Timespan (TimeSpan2 + TimeSpan3) = 3.10:55:25

세 개의 TimeSpan 객체를 생성한 뒤, Add() 메서드로 두 구간씩 더해 결과를 출력했습니다. 음수로 지정된 TimeSpan도 문제없이 처리되는 것을 확인할 수 있습니다.

예제 2

이번에는 음수 시간 간격과 TimeSpan.MinValue를 활용한 극단적인 경우를 살펴보겠습니다.

using System;
public class Demo {
   public static void Main(){
      TimeSpan span1 = new TimeSpan(-6, 25, 0);
      TimeSpan span2 = new TimeSpan(1, 11, 25, 20);
      TimeSpan span3 = TimeSpan.MinValue;
      TimeSpan res1 = span1.Add(span2);
      TimeSpan res2 = span2.Add(span3);
      Console.WriteLine("Final Timespan (TimeSpan1 + TimeSpan2) = "+res1);
      Console.WriteLine("Final Timespan (TimeSpan2 + TimeSpan3) = "+res2);
   }
}

출력 결과

실행 결과는 다음과 같습니다.

Final Timespan (TimeSpan1 + TimeSpan2) = 1.05:50:20
Final Timespan (TimeSpan2 + TimeSpan3) = -10675197.15:22:45.4775808

두 번째 예제에서는 TimeSpan이 표현할 수 있는 최솟값인 TimeSpan.MinValue(약 -10,675,199일)를 더해 보았습니다. 이 값보다 더 작아지는 연산을 수행하면 OverflowException이 발생하므로, 범위가 큰 시간 계산 시에는 주의하는 것이 좋습니다.


참고: TimeSpan 타입은 + 연산자를 오버로딩하고 있기 때문에 span1 + span2처럼 연산자를 사용하면 내부적으로 Add() 메서드가 호출됩니다. 따라서 가독성을 높이고 싶다면 + 연산자를 사용하는 것도 좋은 선택입니다.