C#의 TimeSpan.FromSeconds() 메서드는 지정된 초(second) 수를 나타내는 TimeSpan 객체를 반환하는 정적 메서드입니다. 이때 입력값은 밀리초(ms) 단위까지의 정밀도로 처리되며, 소수점 이하 값도 반올림되어 반영됩니다.
시간 간격을 다루는 다양한 팩토리 메서드(FromHours, FromMinutes, FromMilliseconds 등)와 함께 활용하면 코드의 가독성을 높이고 시간 계산 오류를 줄일 수 있습니다.
구문(Syntax)
메서드의 기본 구문은 다음과 같습니다.
public static TimeSpan FromSeconds (double val);
매개변수 val은 초 단위의 시간을 나타내며, double 형식으로 밀리초 정밀도까지 지정할 수 있습니다.
예제 1
다음 예제에서는 FromSeconds()를 비롯해 FromHours(), FromMinutes(), FromMilliseconds() 등 여러 팩토리 메서드로 TimeSpan을 생성하고, TimeSpan.Compare()로 두 TimeSpan 객체를 비교한 결과를 출력합니다.
using System;
public class Demo {
public static void Main() {
TimeSpan span1 = TimeSpan.FromSeconds(0.6768788);
TimeSpan span2 = new TimeSpan(25, 15, 45);
TimeSpan span3 = TimeSpan.FromHours(.4788);
TimeSpan span4 = TimeSpan.FromMilliseconds(0.8787);
TimeSpan span5 = TimeSpan.FromMinutes(2.550);
Console.WriteLine("TimeSpan1 = "+span1);
Console.WriteLine("TimeSpan2 = "+span2);
Console.WriteLine("TimeSpan3 = "+span3);
Console.WriteLine("TimeSpan4 = "+span4);
Console.WriteLine("TimeSpan5 = "+span5);
Console.WriteLine("Result (Comparison of span1 and span2) = "+TimeSpan.Compare(span1, span2));
Console.WriteLine("Result (Comparison of span2 and span3) = "+TimeSpan.Compare(span2, span3));
Console.WriteLine("Result (Comparison of span1 and span3) = "+TimeSpan.Compare(span1, span3));
Console.WriteLine("Result (Comparison of span3 and span4) = "+TimeSpan.Compare(span3, span4));
Console.WriteLine("Result (Comparison of span4 and span5) = "+TimeSpan.Compare(span4, span5));
}
}실행 결과
TimeSpan1 = 00:00:00.6770000 TimeSpan2 = 1.01:15:45 TimeSpan3 = 00:28:43.6800000 TimeSpan4 = 00:00:00.0010000 TimeSpan5 = 00:02:33 Result (Comparison of span1 and span2) = -1 Result (Comparison of span2 and span3) = 1 Result (Comparison of span1 and span3) = -1 Result (Comparison of span3 and span4) = 1 Result (Comparison of span4 and span5) = -1
참고: TimeSpan.Compare(a, b)는 a가 b보다 작으면 -1, 같으면 0, 크면 1을 반환합니다.
예제 2
이번에는 정수 값과 음수 값을 포함한 다양한 입력으로 TimeSpan을 생성해 보겠습니다. 음수 값을 넣으면 음의 시간 간격도 표현할 수 있습니다.
using System;
public class Demo {
public static void Main() {
TimeSpan span1 = TimeSpan.FromSeconds(1);
TimeSpan span2 = new TimeSpan(-9, 45, 50);
TimeSpan span3 = TimeSpan.FromHours(5);
TimeSpan span4 = TimeSpan.FromMilliseconds(10000);
TimeSpan span5 = TimeSpan.FromMinutes(2);
Console.WriteLine("TimeSpan1 = "+span1);
Console.WriteLine("TimeSpan2 = "+span2);
Console.WriteLine("TimeSpan3 = "+span3);
Console.WriteLine("TimeSpan4 = "+span4);
Console.WriteLine("TimeSpan5 = "+span5);
Console.WriteLine("Result (Comparison of span1 and span2) = "+TimeSpan.Compare(span1, span2));
Console.WriteLine("Result (Comparison of span2 and span3) = "+TimeSpan.Compare(span2, span3));
Console.WriteLine("Result (Comparison of span1 and span3) = "+TimeSpan.Compare(span1, span3));
Console.WriteLine("Result (Comparison of span3 and span4) = "+TimeSpan.Compare(span3, span4));
Console.WriteLine("Result (Comparison of span4 and span5) = "+TimeSpan.Compare(span4, span5));
}
}실행 결과
TimeSpan1 = 00:00:01 TimeSpan2 = -08:14:10 TimeSpan3 = 05:00:00 TimeSpan4 = 00:00:10 TimeSpan5 = 00:02:00 Result (Comparison of span1 and span2) = 1 Result (Comparison of span2 and span3) = -1 Result (Comparison of span1 and span3) = -1 Result (Comparison of span3 and span4) = 1 Result (Comparison of span4 and span5) = -1
정리
TimeSpan.FromSeconds()는 초 단위 숫자를 TimeSpan으로 손쉽게 변환해 주는 유용한 메서드입니다. 밀리초 정밀도를 지원하고 음수 값도 처리할 수 있어, 타이머 설정, 대기 시간 계산, 시간 간격 비교 등 다양한 상황에서 활용할 수 있습니다.