본문 바로가기
C#

[C#] TimeSpan

by DANEW 2023. 7. 1.

TimeSpan(System.TimeSpan)

 

TimeSpan Struct (System)

Represents a time interval.

learn.microsoft.com

 
 
 

 

[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