import streamlit as st import pandas as pd from datetime import datetime # Lấy ngày hiện tại today = datetime.today().strftime('%d/%m/%Y') # Giả sử đây là dữ liệu ban đầu từ bảng data = { 'Người đăng ký': [], 'Thời gian bắt đầu': [], 'Thời gian kết thúc': [], 'Phòng': [] # Chỉ lưu một phòng } # Chuyển dữ liệu thành DataFrame df = pd.DataFrame(data) # Hàm kiểm tra trùng lặp thời gian def is_time_overlap(start1, end1, start2, end2): return max(start1, start2) < min(end1, end2) # Tiêu đề của ứng dụng kèm ngày hiện tại st.title(f"Đăng ký phòng họp ngày {today}") # Nhập thông tin người đăng ký name = st.text_input("Người đăng ký") # Chọn thời gian bắt đầu và kết thúc start_time = st.time_input("Thời gian bắt đầu") end_time = st.time_input("Thời gian kết thúc") # Chọn phòng (chỉ một phòng) room = st.radio('Chọn phòng', ('Phòng 1', 'Phòng 2', 'Phòng 3')) # Khi người dùng nhấn nút 'Submit' 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: # Kiểm tra chồng chéo thời gian 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: # Thêm thông tin vào DataFrame new_row = { '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 = df.append(new_row, ignore_index=True) st.success("Đăng ký thành công!") # Hiển thị bảng dữ liệu đã đăng ký st.write("Danh sách đăng ký:") st.dataframe(df)