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

C# TimeSpan에서 Seconds와 TotalSeconds의 차이점 완벽 정리


C#의 TimeSpan 구조체에는 시간 간격을 다루는 두 가지 대표적인 속성이 있습니다. Seconds는 TimeSpan 값 중 '초' 구성 요소만 반환하는 반면, TotalSeconds는 전체 시간 간격을 초 단위로 변환하여 반환합니다. 이번 글에서는 두 속성의 차이를 예제 코드와 함께 자세히 알아보겠습니다.

1. TimeSpan Seconds 속성

Seconds 속성은 TimeSpan 객체가 나타내는 시간 간격 중 초(0~59) 구성 요소만 정수(int) 형태로 반환합니다. 즉, 일, 시간, 분 등 다른 단위는 고려하지 않고 오직 '초' 부분만 보여줍니다.

예제

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // seconds
        Console.WriteLine(ts.Seconds);
    }
}

출력 결과

20

위 예제에서 TimeSpan은 100시간 0분 20초를 나타냅니다. 따라서 ts.Seconds는 전체 시간을 초로 환산하지 않고, 초 구성 요소에 해당하는 20만 출력합니다.

2. TimeSpan TotalSeconds 속성

TotalSeconds 속성은 TimeSpan 값의 전체 시간 간격을 초 단위로 변환하여 double 형식으로 반환합니다. 일, 시간, 분, 초, 밀리초까지 모두 합산된 값이므로, 경과 시간을 계산하거나 비교할 때 유용하게 사용됩니다.

예제

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // total seconds
        Console.WriteLine(ts.TotalSeconds);
    }
}

출력 결과

360020

100시간은 360,000초(100 × 60 × 60)이며, 여기에 20초를 더하면 총 360,020초가 됩니다.

3. 두 속성 한 번에 비교하기

이제 두 속성을 하나의 예제에서 함께 실행해 결과를 직접 확인해 보겠습니다.

예제

using System;
using System.Linq;
public class Demo {
    public static void Main() {
        TimeSpan ts = new TimeSpan(0, 100, 0, 20, 0);
        // seconds
        Console.WriteLine(ts.Seconds);
        // total seconds
        Console.WriteLine(ts.TotalSeconds);
    }
}

출력 결과

20
360020

정리

  • Seconds: TimeSpan 값에서 초 구성 요소(0~59)만 정수(int)로 반환합니다.
  • TotalSeconds: 전체 시간 간격을 초 단위로 환산하여 실수(double)로 반환합니다.

시간 차이를 계산하거나 경과 시간을 초 단위로 비교해야 할 때는 TotalSeconds를 사용하고, 특정 시각의 '초' 필드 값만 필요할 때는 Seconds를 사용하는 것이 적절합니다. 두 속성의 역할을 정확히 구분하면 시간 관련 로직에서 발생할 수 있는 오류를 효과적으로 예방할 수 있습니다.