C#에서 음수 값으로 표현된 TimeSpan의 절대값을 구하려면 Duration() 메서드를 사용하면 됩니다. 이 메서드는 TimeSpan 객체의 부호를 제거하고, 순수한 지속 시간(duration)만을 반환합니다.
TimeSpan 객체 생성
먼저 다음과 같이 음수 값을 가진 TimeSpan 객체를 생성해 보겠습니다.
TimeSpan ts = new TimeSpan(-7, -50, -25);
Duration() 메서드로 절대값 구하기
생성된 TimeSpan의 절대값은 Duration() 메서드를 호출하여 간단히 얻을 수 있습니다.
TimeSpan duration = ts.Duration();
전체 예제 코드
아래는 위 내용을 모두 포함한 완성된 예제 코드입니다.
using System;
using System.Linq;
public class Demo {
public static void Main() {
TimeSpan ts = new TimeSpan(-7, -50, -25);
TimeSpan duration = ts.Duration();
Console.WriteLine(duration);
}
}실행 결과
07:50:25
코드 설명
위 예제에서 new TimeSpan(-7, -50, -25)는 시, 분, 초가 모두 음수인 TimeSpan 객체를 생성합니다. 일반적으로 TimeSpan 생성자에 음수 값을 전달하면 전체 기간이 음수로 해석됩니다.
이때 Duration() 메서드를 호출하면 부호와 관계없이 해당 시간 간격의 크기만 반환되므로, 결과적으로 07:50:25라는 양수 값의 지속 시간을 얻게 됩니다.
참고로 Math.Abs() 메서드는 TimeSpan 타입에 직접 사용할 수 없으므로, TimeSpan의 절대값이 필요할 때는 반드시 Duration() 메서드를 활용하는 것이 올바른 방법입니다.