TimeSpan(System.TimeSpan)
[System.Runtime.InteropServices.ComVisible(true)]
public struct TimeSpan : IComparable, IComparable<TimeSpan>, IEquatable<TimeSpan>, IFormattable
TimeSpan
- 일정한 길이의 시간 구간(interval of time)
- 일광절약시간(서머 타임)은 반영되지 않음
- 해상도: 100ns == 1tick
- 최대값: 약 1천만 일
- 양수와 음수 모두 지원
생성법
- 생성자 호출시 값 기입
- FromDays, FromHours, FromMinutes, FromSeconds, FromMilliseconds
- 두 DateTime 객체를 더하거나 뺀다(+ - 연산자 오버로딩)
대소 비교
- < > 연산자 오버로딩
값 추출
- ToString
- Days, Hours, Minutes, Seconds, Milliseconds
- TotalDays, TotalHours, TotalMinutes, TotalSeconds, TotalMilliseconds
파싱
- Parse, TryParse
// TimeSpan
// 일정한 길이의 시간 구간(interval of time)
// 하루 중 시간('시각') - 날짜가 없는 시계 시간, 즉 자정으로부터 흐른 시간
// 일광절약시간(서머타임) 미반영
// 해상도: 100ns
// 최대값: 약 1천만일
// 양수, 음수 지원
// TimeSpan 객체 구축 방법
// 생성자를 통하여
TimeSpan[] ts =
{
new TimeSpan(5, 20, 40), // 시, 분, 초
new TimeSpan(2, 5, 20, 40), // 일, 시, 분, 초
new TimeSpan(1, 5, 20, 40, 900), // 일, 시, 분, 초, 밀리초
new TimeSpan(-10000000000000), // tick(100ns)
};
// from... 메서드를 통하여
// 단위 하나만으로 값을 지정할 때
TimeSpan[] ts2 = new TimeSpan[5];
ts2[0] = TimeSpan.FromDays(10); // 일
ts2[1] = TimeSpan.FromHours(-11); // 시
ts2[2] = TimeSpan.FromMinutes(12); // 분
ts2[3] = TimeSpan.FromSeconds(-13); // 초
ts2[4] = TimeSpan.FromMilliseconds(14); // 밀리초
foreach (var item in ts)
{
Console.WriteLine(item);
}
Console.WriteLine();
foreach (var item in ts2)
{
Console.WriteLine(item);
}
Console.WriteLine();
// + - < > 연산자가 중복 적재 되어 있음
Console.WriteLine(ts2[0] + ts2[1]);
Console.WriteLine(ts[1] - ts[2]);
Console.WriteLine(ts[1] > ts[2]);
Console.WriteLine(ts[1] < ts[2]);
Console.WriteLine();
// 각 속성에 접근
Console.WriteLine(ts[2].Days);
Console.WriteLine(ts[2].Hours);
Console.WriteLine(ts[2].Minutes);
Console.WriteLine(ts[2].Seconds);
Console.WriteLine(ts[2].Milliseconds);
Console.WriteLine();
// 각 속성 단위로 환원하여 접근
// double이기 때문에 그 아랫 단위는 소수점으로 표시됨
Console.WriteLine(ts[2].TotalDays);
Console.WriteLine(ts[2].TotalHours);
Console.WriteLine(ts[2].TotalMinutes);
Console.WriteLine(ts[2].TotalSeconds);
Console.WriteLine(ts[2].TotalMilliseconds);
Console.WriteLine();
// Parse, String to TimeSpan
ts[0] = TimeSpan.Parse("1.03:40:20.901");
Console.WriteLine(ts[0]);
bool isParse = TimeSpan.TryParse("2.3.2", out ts[1]);
Console.WriteLine("Parsing Result : {0}, {1}", isParse, ts[1]);
Console.WriteLine();
// 기본 값
Console.WriteLine(TimeSpan.Zero);
'C#' 카테고리의 다른 글
[C#] TimeZoneInfo (1) | 2023.08.11 |
---|---|
[C#] TimeZone (1) | 2023.08.10 |
[C#] DateTime & DateTimeOffset (0) | 2023.07.06 |
[C#] TimeZoneInfo (2) | 2023.07.05 |
[C#] TimeZone (1) | 2023.07.04 |
[C#] Encoding (1) | 2023.06.30 |
[C#] StringBuilder (0) | 2023.06.27 |
[C#] string (0) | 2023.06.25 |