| import streamlit as st |
| import pandas as pd |
| from datetime import datetime |
|
|
| |
| today = datetime.today().strftime('%d/%m/%Y') |
|
|
| |
| data = { |
| 'Người đăng ký': [], |
| 'Thời gian bắt đầu': [], |
| 'Thời gian kết thúc': [], |
| 'Phòng': [] |
| } |
|
|
| |
| df = pd.DataFrame(data) |
|
|
| |
| def is_time_overlap(start1, end1, start2, end2): |
| return max(start1, start2) < min(end1, end2) |
|
|
| |
| st.title(f"Đăng ký phòng họp ngày {today}") |
|
|
| |
| name = st.text_input("Người đăng ký") |
|
|
| |
| start_time = st.time_input("Thời gian bắt đầu") |
| end_time = st.time_input("Thời gian kết thúc") |
|
|
| |
| room = st.radio('Chọn phòng', ('Phòng 1', 'Phòng 2', 'Phòng 3')) |
|
|
| |
| if st.button("Submit"): |
| if start_time >= end_time: |
| st.error("Thời gian bắt đầu phải nhỏ hơn thời gian kết thúc.") |
| else: |
| |
| overlap = False |
| for i, row in df.iterrows(): |
| |
| if row['Phòng'] == room and is_time_overlap(row['Thời gian bắt đầu'], row['Thời gian kết thúc'], start_time, end_time): |
| overlap = True |
|
|
| if overlap: |
| st.error(f"Thời gian bạn chọn cho {room} đã bị trùng lặp với một người đăng ký khác.") |
| else: |
| |
| new_row = pd.DataFrame({ |
| 'Người đăng ký': [name], |
| 'Thời gian bắt đầu': [start_time], |
| 'Thời gian kết thúc': [end_time], |
| 'Phòng': [room] |
| }) |
| df = pd.concat([df, new_row], ignore_index=True) |
| st.success("Đăng ký thành công!") |
|
|
| |
| st.write("Danh sách đăng ký:") |
| st.dataframe(df) |
|
|