총 소요 시간을 구하기 위해 시작 시간과 종료 시간의 차이를 구하는 방법을 알아 봤다.
inDays: Duration을 일 단위로 반환합니다.inHours: Duration을 시간 단위로 반환합니다.inMinutes: Duration을 분 단위로 반환합니다.nSeconds: Duration을 초 단위로 반환합니다.inMilliseconds: Duration을 밀리초 단위로 반환합니다.inMicroseconds: Duration을 마이크로초 단위로 반환합니다.difference: 두 DateTime 객체 간의 차이를 Duration으로 반환합니다.DateTime startTime = DateTime(2024, 8, 9, 10, 0); // 2024년 8월 9일 오전 10시
DateTime endTime = DateTime(2024, 8, 9, 12, 30); // 2024년 8월 9일 오후 12시 30분
Duration duration = endTime.difference(startTime); //2:30:00.000000
print(duration.inHours); // 2 (전체 시간)
print(duration.inMinutes); // 150 (전체 분)
즉 dateTime을 어떤 형식으로 나타낼건지를 설정할 수 있는 메소드!
true 반환DateTime startTime = DateTime(2024, 8, 9, 15, 0); // 2024년 8월 9일 오후 3시
DateTime endTime = DateTime(2024, 8, 9, 14, 0); // 2024년 8월 9일 오후 2시
Duration duration = endTime.difference(startTime);
print(duration.isNegative); // true (음수이기 때문)
Obx(() {
final startTime = c.startTime.value;
final endTime = c.endTime.value;
// 시작 시간과 종료 시간을 DateTime으로 변환하여 차이 계산
final startDateTime = DateTime(selectDay.year, selectDay.month,
selectDay.day, startTime.hour, startTime.minute);
final endDateTime = DateTime(selectDay.year, selectDay.month,
selectDay.day, endTime.hour, endTime.minute);
// 두 시간 사이의 Duration 계산
final duration = endDateTime.difference(startDateTime);
final durationText = duration.isNegative
? "잘못된 시간 설정"
: "${duration.inHours}시간 ${duration.inMinutes % 60}분";
return Text(
"총 소요시간: $durationText",
style: TextStyle(fontSize: 12, color: Colors.black),
);
}),

종료시간이 시작시간보다 빠를때! 이 경우에 대한 유효성 검사(?)를 추후에 추가해야겠다