Advertisement
elenaD

Events's time

Feb 18th, 2025
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.09 KB | Software | 0 0
  1. from datetime import datetime
  2.  
  3. def parse_time(time_str):
  4.     return datetime.strptime(time_str, "%H:%M")
  5.  
  6. def find_overlap(event1, event2):
  7.     start1, end1 = map(parse_time, event1)
  8.     start2, end2 = map(parse_time, event2)
  9.  
  10.     if max(start1, start2) <= min(end1, end2):
  11.         return True, max(start1, start2).strftime("%H:%M"), min(end1, end2).strftime("%H:%M")
  12.     return False
  13.  
  14. def find_overlap_multiple(events):
  15.     events = sorted(events, key=lambda x: parse_time(x[0]))
  16.     start, end = parse_time(events[0][0]), parse_time(events[0][1])
  17.  
  18.     for event in events[1:]:
  19.         event_start, event_end = map(parse_time, event)
  20.         start, end = max(start, event_start), min(end, event_end)
  21.         if start > end:
  22.             return False
  23.  
  24.     return True, start.strftime("%H:%M"), end.strftime("%H:%M")
  25.  
  26. print(find_overlap(["02:15", "04:00"], ["04:00", "06:00"]))
  27. print(find_overlap(["01:00", "02:35"], ["01:25", "06:00"]))
  28. print(find_overlap(["10:15", "11:15"], ["14:30", "16:40"]))
  29. print(find_overlap_multiple([["01:00", "03:00"], ["02:00", "04:00"], ["02:30", "05:00"]]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement