DateTime에 일/시/분/초 등의 시간을 더하거나 빼는 방법을 소개합니다. 또한 두개의 DateTime 객체의 시간 차이를 계산하는 방법을 소개합니다.
1. DateTime에 시간 더하기/빼기
1.1 시간 더하기
DateTime.Add(TimeSpan)
은 DateTime에 TimeSpan의 시간을 추가합니다.
TimeSpan(days, hours, minutes, seconds)
은 인자로 주어진 시간의 범위 정보를 갖고 있습니다.
아래와 같이 DateTime에 TimeSpan에 설정된 시간만큼 추가할 수 있습니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
DateTime today = DateTime.Now;
TimeSpan duration = new TimeSpan(10, 10, 10, 10);
DateTime result = today.Add(duration);
Console.WriteLine("today: " + today);
Console.WriteLine("result: " + result);
}
}
}
Output:
today: 12/10/2022 10:16:14 AM
result: 12/20/2022 8:26:24 PM
다른 방법으로, DateTime
은 AddDays()
, AddHours()
같은 add 메소드를 제공합니다. 이 메소드들을 이용하여 시간을 더할 수 있습니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
DateTime today = DateTime.Now;
DateTime result = today.AddDays(1)
.AddHours(1)
.AddMinutes(10)
.AddSeconds(20);
Console.WriteLine("today: " + today);
Console.WriteLine("result: " + result);
}
}
}
Output:
today: 12/10/2022 10:27:53 AM
result: 12/11/2022 11:38:13 AM
1.2 시간 빼기
DateTime.Subtract(TimeSpan)
은 DateTime에서 TimeSpan의 시간을 뺍니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
DateTime today = DateTime.Now;
TimeSpan duration = new TimeSpan(10, 10, 10, 10);
DateTime result = today.Subtract(duration);
Console.WriteLine("today: " + today);
Console.WriteLine("result: " + result);
}
}
}
Output:
today: 12/10/2022 10:29:21 AM
result: 11/30/2022 12:19:11 AM
다른 방법으로, AddDays()
같은 메소드를 이용할 때, 입력 시간을 음수로 설정하면 DateTime에서 일정 시간을 뺄 수 있습니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
DateTime today = DateTime.Now;
DateTime result = today.AddDays(-1)
.AddHours(-1)
.AddMinutes(-10)
.AddSeconds(-20);
Console.WriteLine("today: " + today);
Console.WriteLine("result: " + result);
}
}
}
Output:
today: 12/10/2022 10:28:44 AM
result: 12/9/2022 9:18:24 AM
2. 두개의 DateTime의 시간 차이
아래 예제처럼, datetime2 - datetime2
처럼 -
연산자로 두개의 DateTime 객체를 빼면 시간 차이 정보를 갖고 있는 TimeSpan을 리턴합니다.
TimeSpan.Days
등의 변수로 특정 단위 시간을 가져올 수 있습니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
DateTime datetime1 = DateTime.Parse("2022-12-10 10:18:21");
DateTime datetime2 = DateTime.Parse("2022-12-15 11:38:41");
TimeSpan duration = datetime2 - datetime1;
Console.WriteLine("duration: " + duration);
Console.WriteLine("Days: " + duration.Days);
Console.WriteLine("Hours: " + duration.Hours);
Console.WriteLine("Minutes: " + duration.Minutes);
Console.WriteLine("Seconds: " + duration.Seconds);
}
}
}
Output:
duration: 5.01:20:20
Days: 5
Hours: 1
Minutes: 20
Seconds: 20
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)