TimeSpan과 기간
시간 간격을 측정해 보세요.
TimeSpan과 기간은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
TimeSpan이란 무엇인가
DateTime이 특정 시점을 나타내는 반면, TimeSpan은 2시간이나 90분처럼 시간의 길이를 나타냅니다.
달력과 연결되지 않은 기간입니다. 스톱워치 결과, 시간 제한, 두 날짜 사이의 간격을 나타낼 때 사용합니다.
TimeSpan 만들기
한 생성자는 시간, 분, 초를 인수로 받습니다: new TimeSpan(hours, minutes, seconds).
따라서 new TimeSpan(1, 30, 0)은 1시간 30분입니다. 값은 읽기 쉬운 h:mm:ss 형식으로 표시됩니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = new TimeSpan(1, 30, 0);
Console.WriteLine(span);
}
}생성 메서드
팩터리 메서드를 사용하면 코드를 더 읽기 좋게 작성할 수 있습니다. TimeSpan.FromMinutes(90)은 90분의 기간을 만듭니다.
이에 대응하는 도우미도 있습니다: FromHours, FromSeconds, FromDays, FromMilliseconds입니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span);
}
}전체 값과 구성 요소 값
TimeSpan에는 두 종류의 속성이 있습니다. Hours, Minutes, Seconds는 기간을 나누어 나타내는 구성 요소입니다.
Total... 계열인 TotalMinutes 등은 전체 기간을 하나의 단위로 표현하며, 값은 소수로 나타냅니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span.Hours);
Console.WriteLine(span.TotalMinutes);
}
}구성 요소와 전체 값 비교
90분의 경우 기간이 1시간 30분으로 나뉘므로 Hours는 1이고 Minutes는 30입니다.
하지만 TotalHours는 1.5이고 TotalMinutes는 90입니다. 이 속성들은 전체 기간을 하나의 단위로 계산하기 때문입니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromMinutes(90);
Console.WriteLine(span.TotalHours);
}
}두 날짜 빼기
한 DateTime에서 다른 DateTime을 빼면 결과는 TimeSpan입니다.
이 방법은 어떤 이벤트가 진행된 시간처럼 두 시점 사이에 얼마나 시간이 흘렀는지 알아내는 일반적인 방법입니다.
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2024, 3, 5, 9, 0, 0);
DateTime end = new DateTime(2024, 3, 5, 11, 30, 0);
TimeSpan diff = end - start;
Console.WriteLine(diff.TotalHours);
}
}TimeSpan 더하기
일반적인 + 및 - 연산자를 사용해 TimeSpan 값을 더하거나 뺄 수 있습니다.
두 기간을 합치면 더 긴 기간이 되므로 여러 시간 간격의 합을 구할 때 유용합니다.
using System;
class Program
{
static void Main()
{
TimeSpan a = TimeSpan.FromMinutes(45);
TimeSpan b = TimeSpan.FromMinutes(15);
Console.WriteLine((a + b).TotalMinutes);
}
}음수 기간
끝 시점이 시작 시점보다 이르거나 뺄셈의 결과인 경우 TimeSpan은 음수가 될 수 있습니다.
Duration 메서드는 절댓값을 반환하고, Negate는 부호를 뒤집습니다. 기간의 크기만 중요할 때 유용합니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = TimeSpan.FromHours(-3);
Console.WriteLine(span.Duration().TotalHours);
}
}기간 비교
TimeSpan 값은 숫자와 마찬가지로 <, >, ==를 사용해 비교할 수 있습니다.
이를 통해 한 기간이 다른 기간보다 긴지 확인할 수 있습니다. 예를 들어 허용되는 최대 시간을 적용할 때 사용할 수 있습니다.
using System;
class Program
{
static void Main()
{
TimeSpan limit = TimeSpan.FromHours(2);
TimeSpan used = TimeSpan.FromMinutes(150);
Console.WriteLine(used > limit);
}
}0과 상수
TimeSpan.Zero는 경과한 시간이 없음을 나타내며, 합계를 계산할 때 편리한 시작점입니다.
기간이 가질 수 있는 최솟값과 최댓값을 나타내는 TimeSpan.MinValue와 TimeSpan.MaxValue도 있습니다.
using System;
class Program
{
static void Main()
{
TimeSpan total = TimeSpan.Zero;
total += TimeSpan.FromMinutes(10);
Console.WriteLine(total.TotalMinutes);
}
}TimeSpan 형식 지정
사용자 지정 문자열로 TimeSpan의 형식을 지정할 수 있습니다. 예를 들어 @"hh\:mm"은 시간과 분을 표시합니다.
백슬래시는 콜론을 이스케이프하여 문자 그대로 표시되게 합니다. 빠른 출력에는 기본 ToString만으로도 충분한 경우가 많습니다.
using System;
class Program
{
static void Main()
{
TimeSpan span = new TimeSpan(2, 5, 0);
Console.WriteLine(span.ToString(@"hh\:mm"));
}
}빠른 확인
90분인 TimeSpan이 있습니다. 어떤 속성이 1.5를 반환합니까?
복습
TimeSpan은 기간입니다. new TimeSpan(...)이나 FromMinutes 같은 생성 메서드로 만들 수 있습니다.
구성 요소 속성인 Hours는 Total... 속성과 다릅니다. 두 DateTime을 빼면 TimeSpan이 반환되며, 기간을 더하고 비교하고 형식을 지정할 수 있습니다.
자주 묻는 질문
“TimeSpan과 기간” 강의는 무료인가요?
네 — “TimeSpan과 기간” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“TimeSpan과 기간”에서 뭘 배우나요?
시간 간격을 측정해 보세요. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C# Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“TimeSpan과 기간” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- DateTimes 만들기
- 날짜 형식 지정
- TimeSpan과 기간
- 날짜 연산