Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 숫자 포맷
- 구독패턴
- 이벤트 기반 아키텍처
- c# 포맷
- c#
- 웹서버 만들기
- 2차방정식
- 프로그래밍
- 데이터관리
- microsoft.entityframeworkcore.design
- 개발
- c# 시간계산
- default
- c샵
- 근의공식
- 루즈 커플링
- swagger
- timespan
- 브로드캐스트
- 시간빼기
- loose coupling
- http server
- 시간더하기
- cshop
- Visual Studio
- 비주얼스튜디오
- migration
- 날짜 포맷
- 문자열 포맷
- Web Server
Archives
- Today
- Total
Debug & Think
[C# 시간 계산] DateTime과 TimeSpan 차이와 활용법 정리 본문
설명:C#에서 시간 계산을 정확하게 처리하는 방법을 알려드립니다. DateTime과 TimeSpan의 차이, 시간 빼기, 더하기, 포맷팅까지 모두 정리했습니다.
📌 개요
C#에서 시각 정보를 다룰 때 DateTime과 TimeSpan은 가장 많이 사용되는 구조체입니다. 이 글에서는 두 개념의 차이점과 활용법을 정리하여, 시간 계산과 출력 시 헷갈리지 않도록 설명드립니다.
✅ DateTime: 날짜와 시간 모두 포함
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy-MM-dd HH:mm:ss")); // 2025-07-08 14:05:03
- DateTime은 특정 시점을 나타냅니다.
- .AddMinutes(), .AddHours() 등을 통해 시간 계산이 가능합니다.
✅ TimeSpan: 시간 간격 계산 전용
TimeSpan time = new TimeSpan(1, 30, 0); // 1시간 30분
Console.WriteLine(time.TotalMinutes); // 90
- 두 시간 차이 계산에 유용합니다.
- 예: end - start로 두 DateTime 간 차이를 구할 수 있습니다.
✅ 실전 예제(특정시간에서 45분을 뺀다면?)
1) DateTime 방식
DateTime dt = new DateTime(1, 1, 1, hour, minute, 0);
dt = dt.AddMinutes(-45);
Console.WriteLine($"{dt.Hour:D2} {dt.Minute:D2}");
2) TimeSpan 방식
TimeSpan time = new TimeSpan(hour, minute, 0).Add(TimeSpan.FromMinutes(-45)); if (time.TotalMinutes < 0) time = time.Add(TimeSpan.FromHours(24)); Console.WriteLine($"{time.Hours:D2} {time.Minutes:D2}");
TimeSpan time = new TimeSpan(hour, minute, 0);
time.Add(TimeSpan.FromMinutes(-45));
if (time.TotalMinutes < 0) time = time.Add(TimeSpan.FromHours(24)); // ex) 0시 30분에서 빼면 23:45
Console.WriteLine($"{time.Hours:D2} {time.Minutes:D2}");
✅ 요약정리
구분 | DateTime | TimeSpan |
목적 | 시점 표현 | 간격 계산 |
사용 예 | 예약 시간 | 남은 시간 |
특징 | 날짜 포함 | 순수 시간만 |
📝 마무리
- 날짜/시간 계산에는 DateTime을, 시간 간격 계산에는 TimeSpan을 사용하는 것이 적절합니다.
- 시간을 가독성 있게 출력하고 싶을 때는 ToString("yyyy-MM-dd HH:mm:ss")와 같은 형식 지정 문자열(Format String)을 함께 사용하면 좋습니다.
🔗 숫자, 날짜, 문자열 출력 형식이 헷갈리신다면?
👉 [C# 포맷 정리] 숫자, 날짜, 문자열 포맷 한눈에 보기
이 글도 함께 참고하시면 포맷 설정에 많은 도움이 됩니다.
[C# 포맷 정리] 숫자, 날짜, 문자열 포맷 한눈에 보기
설명: C#의 숫자 포맷(D, F, N), 날짜 포맷(yyyy, MM, dd), 문자열(string), 열거형(enum) 까지 실무에서 자주 쓰이는 포맷 형식을 정리했습니다. 📌이 글에서는 자주 쓰는 포맷 코드를 예제와 함께 정리하
debug-think.tistory.com