| | 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) |
| |
|