시간 정보를 갖고 있는 DateTime 객체에 년/월/일을 더하거나 빼는 방법을 소개합니다.
1. add()로 시간 더하고
DateTime.add(Duration(time))
은 DateTime
객체에 time
을 더합니다.
인자로 전달되는 time은 아래와 같이 Duration으로 명시할 수 있습니다. 또한, 두개 이상의 시간 타입을 Duration에 명시할 수 있습니다.
Duration(days: ?)
Duration(hours: ?)
Duration(minutes: ?)
Duration(days: ?, hours: ?, minutes: ?)
void main() {
DateTime dt = DateTime(2022, 12, 1);
print('DateTime: $dt');
DateTime dt2 = dt.add(Duration(days: 10));
print(dt2);
DateTime dt3 = dt.add(Duration(hours: 10));
print(dt3);
DateTime dt4 = dt.add(Duration(minutes: 10));
print(dt4);
DateTime dt5 = dt.add(Duration(days: 10, hours: 10, minutes: 10));
print(dt5);
}
Output:
DateTime: 2022-12-01 00:00:00.000
2022-12-11 00:00:00.000
2022-12-01 10:00:00.000
2022-12-01 00:10:00.000
2022-12-11 10:10:00.000
2. subtract()으로 시간 빼기
subtract()
는 add()
의 반대로, 입력된 시간을 DateTime에서 뺍니다.
아래와 같이 시간을 DateTime에서 뺄 수 있습니다.
void main() {
DateTime dt = DateTime(2022, 12, 1);
print('DateTime: $dt');
DateTime dt2 = dt.subtract(Duration(days: 10));
print(dt2);
DateTime dt3 = dt.subtract(Duration(hours: 10));
print(dt3);
DateTime dt4 = dt.subtract(Duration(minutes: 10));
print(dt4);
DateTime dt5 = dt.subtract(Duration(days: 10, hours: 10, minutes: 10));
print(dt5);
}
Output:
DateTime: 2022-12-01 00:00:00.000
2022-11-21 00:00:00.000
2022-11-30 14:00:00.000
2022-11-30 23:50:00.000
2022-11-20 13:50:00.000
년, 월은 days를 활용하여 더하거나 빼면 됩니다.
3. timestamp로 시간 연산
timestamp는 1970년 1월 1일 부터 현재까지 경과한 시간을 millisecond로 표현한 것입니다.
아래와 같이 timestamp로 시간 연산을 할 수 있습니다.
- days, hours, minutes를 millisecond로 변환하여 timestamp와 연산
- timestamp를 다시 DateTime으로 변환
void main() {
DateTime dt = DateTime(2022, 12, 1);
print('DateTime: $dt');
int timestamp = dt.millisecondsSinceEpoch;
int days = 10;
int hours = 10;
int minutes = 10;
int timestampForAdd = timestamp
+ (days * 24 * 60 * 60 * 1000)
+ (hours * 60 * 60 * 1000)
+ (minutes * 60 * 1000);
DateTime dt2 = DateTime.fromMillisecondsSinceEpoch(timestampForAdd);
print('DateTime for add: $dt2');
int timestampForSubtract = timestamp
- (days * 24 * 60 * 60 * 1000)
- (hours * 60 * 60 * 1000)
- (minutes * 60 * 1000);
DateTime dt3 = DateTime.fromMillisecondsSinceEpoch(timestampForSubtract);
print('DateTime for sub: $dt3');
}
Output:
DateTime: 2022-12-01 00:00:00.000
DateTime for add: 2022-12-11 10:10:00.000
DateTime for sub: 2022-11-20 13:50:00.000
Loading script...
Related Posts
- Flutter/Dart - Future.delayed() 사용 방법
- Flutter/Dart - Stream 사용 방법
- Flutter/Dart - 파일, 디렉토리 삭제
- Flutter/Dart - 텍스트 파일 쓰기
- Flutter/Dart - 반복문 (for, while, for-in, forEach)
- Flutter/Dart - Static 변수, 메소드 선언
- Flutter/Dart - 텍스트 파일 읽기
- Flutter/Dart - 다양한 Null 체크 방법
- Flutter/Dart - Double을 Int로 변환
- Flutter/Dart - Double을 String으로 변환
- Flutter/Dart - String을 Double로 변환
- Flutter/Dart - String을 List로 변환
- Flutter/Dart - String에서 특정 문자열 Index 찾기
- Flutter/Dart - String 길이(length)
- Flutter/Dart - 몇 초 지연시키기, sleep
- Flutter/Dart - 날짜 계산, 년/월/일 더하고 빼기
- Flutter/Dart - 날짜 문자열을 DateTime으로 변환
- Flutter/Dart - 현재 시간 가져오기, DateTime
- Flutter/Dart - Map에 key-value 추가
- Flutter/Dart - Map 순회 방법
- Flutter/Dart - Map 선언 및 초기화
- Flutter/Dart - Map에서 Entry(key-value) 제거
- Flutter/Dart - key, value로 Map 정렬
- Flutter/Dart - 리스트 복사 방법
- Flutter/Dart - 리스트 합치는 방법
- Flutter/Dart - 리스트 최대값, 최소값 찾기
- Flutter/Dart - 리스트 요소 추가, 특정 위치 추가
- Flutter/Dart - 리스트 요소 제거
- Flutter/Dart - 리스트 합계, 평균 계산
- Flutter/Dart - 리스트 요소 값 변경, 찾기
- Flutter/Dart - 리스트 중복 제거
- Flutter/Dart - 리스트 정렬 (오름차순, 내림차순)
- Flutter/Dart - 리스트 자르기, 분리하기
- Flutter/Dart - 변수 타입 체크
- Flutter/Dart - 리스트 필터링