| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Deque
- 우선순위 큐
- Stack
- 파이썬
- explainable recommendation
- 코테
- knowledge
- Algorithm
- 정렬
- Python
- 그래프 탐색
- DP
- isnumeric()
- LSTM
- 프로그래머스
- isdigit()
- isalpha()
- Dynamic Programming
- Recommendation
- 자료구조
- bfs
- find()
- 동적 프로그래밍
- 알고리즘
- 백준
- 그래프
- isalnum()
- kg
- 추천시스템
- Knowledge graph
Archives
- Today
- Total
데린이 고인물되기
[TIL] 250916 - 파이썬 datetime 사용법 본문
반응형
🧩"05:34"와 "04:56"의 시간 차이를 분 단위로 구하는 방법
from datetime import datetime
t1, t2 = "05:34", "04:56"
fmt = "%H:%M"
dt1 = datetime.strptime(t1, fmt)
dt2 = datetime.strptime(t2, fmt)
diff_minutes = abs((dt1 - dt2).seconds // 60)
print(diff_minutes) # 38
🥲코테에서 더 유용한 단순 계산 (더 빠르다)
h1, m1 = map(int, t1.split(":"))
h2, m2 = map(int, t2.split(":"))
minutes1 = h1 * 60 + m1
minutes2 = h2 * 60 + m2
print(abs(minutes1 - minutes2)) # 38
- ⚠️이 방법을 사용할 경우 주의점 : 하루를 넘어가는 경우(`23:50` vs `00:20`)까지 고려하려면 추가적인 사고가 필요하다.
- 예를 들어 "23:50" 과 "00:20" 의 차이를 분으로 구하는 경우
- 그냥 단순히 분으로 바꾸면:
- "23:50" → 23*60 + 50 = 1430
- "00:20" → 0*60 + 20 = 20
- 차이 = 1430 - 20 = 1410분
- 하지만, 실제로는 30분 차이 (23:50에서 다음날 00:20까지 30분)
- 그냥 단순히 분으로 바꾸면:
- 해결법
- 하루는 24*60 = 1440분.
- 따라서 단순 차이를 1440으로 나눈 나머지로 바꿔주면, 하루를 넘어가는 경우에도 제대로 계산됨
- 예를 들어 "23:50" 과 "00:20" 의 차이를 분으로 구하는 경우
h1, m1 = map(int, "23:50".split(":"))
h2, m2 = map(int, "00:20".split(":"))
minutes1 = h1 * 60 + m1 # 1430
minutes2 = h2 * 60 + m2 # 20
# 하루(1440분)로 나머지를 구함
diff = (minutes2 - minutes1) % (24*60)
print(diff) # 30
- 결론 : 머리아프니까 datetime 으로 하자 그냥
반응형
'Algorithm > 정리' 카테고리의 다른 글
| [TIL] 250916 - 파이썬 반올림 / 올림 / 내림 / 버림 (0) | 2025.09.17 |
|---|---|
| [TIL] 250916 - defaultdict에 원소가 있는 리스트를 디폴트로 넣는 방법 (0) | 2025.09.17 |
| [TIL] 250630 - 파이썬 itertools.product 사용법 (1) | 2025.07.01 |
| [TIL] 250629 우선순위 큐(힙(Heap)) (1) | 2025.06.30 |
| [TIL]250629 - 스택, 큐, 덱 (파이썬) (0) | 2025.06.29 |