데린이 고인물되기

[TIL] 250916 - 파이썬 datetime 사용법 본문

Algorithm/정리

[TIL] 250916 - 파이썬 datetime 사용법

데린이 성장 중 2025. 9. 17. 00:22
반응형

🧩"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으로 나눈 나머지로 바꿔주면, 하루를 넘어가는 경우에도 제대로 계산됨
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 으로 하자 그냥
반응형