경기장을 나열하는 웹 사이트의 "지금 열기"필터를 구현해야하지만 시작할 위치를 모르겠습니다. 내 웹 사이트는 Python, webpy, MySQL 데이터베이스를 사용하여 구현됩니다.웹 응용 프로그램의 경기장 목록에 대한 "지금 열기"필터 구현
모든 공연장의 개관 시간을 저장하고 지금 열리는 공연장을 선택해야합니다.
시간을 여는의 예
는 "주말에 오후 11 평일 오후 11시 오전 11 오전 9시 30 분에서 작동", 또는 "오전 7시부터 오전 6시까지을 제외한 라운드 시계 작품".개장 시간은 요일마다 다를 수 있으며 하루에 두 개 이상의 시간 간격이있을 수 있으며 특정 휴일에 대한 예외 사항을 해킹해야합니다.
인터페이스, 데이터 스키마 및 쿼리에 대한 모든 팁/제안을 환영합니다.
UPD : 나는이 솔루션을 생각해 냈습니다. 괜찮습니까?
from dateutil.relativedelta import *
from dateutil.rrule import *
from datetime import *
from date import *
# venue can have many rules
hours_start = 23
minutes_start = 30
hours_end = 13 # if time_end is less than time_start then it ends next day
minutes_end = 30
days_of_week = (TH)
hours_diff = hours_end - hours_start
minutes_diff = minutes_end - minutes_start
if hours_diff < 0 or hours_diff == 0 and minutes_diff < 0:
hours_diff += 24
datetime_start = date.today() + relativedelta(hours=+hours_start, minutes=+minutes_start, days=-1) # Yesterday time_start
now = datetime.now()
occurrence = rrule(WEEKLY, wkst=MO, byweekday=days_of_week, dtstart=datetime_start).before(now, True)
if now <= occurrence + relativedelta(hours=hours_diff, minutes=minutes_diff):
print "IS OPEN NOW"
'from ... import *'는 피해야합니다. 가져올 항목을 명확하게 명시하십시오. – ThiefMaster
수정 해 주셔서 고맙습니다. 최종 코드에서 '가져 오기'를하지 않겠습니다. –