如何在Python中处理打开和关闭时间?

2024-05-16 00:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据库中有两列以这种格式显示的餐馆的营业时间和关门时间

opencol:00:00 closecol:24:00 weekday:1, 
opencol:23:00,closecol:02:00 weekday:2 etc. 

有些餐馆在同一个星期有两个记录

^{pr2}$

我的用例是根据当前时间来判断一家餐厅是否营业?如何处理以上两种情况?在


Tags: 数据库格式记录时间etc用例餐厅weekday
2条回答

获取当前时间(当然,用一个很好的函数/方法包装起来):

from datetime import datetime
d = datetime.now()
weekday = int(d.strftime("%w"))
hours = int(d.strftime("%H")
minutes = int(d.strftime("%M")

然后使用SQL查询执行以下操作:

^{pr2}$

根据您的其他数据,您可能还需要使用分钟,但是使用您提供的数据可以缩短这种情况。在

^{}模块提供了您所需的一切。在

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2012, 2, 18, 20, 38, 53, 271145)

您可以使用^{}获取当前工作日。在

^{pr2}$

获取数据库值并将它们放入^{}对象中(您可以解决如何处理,应该不难理解;strptime可能就是您需要的)。在

一些示例数据:

>>> opening_time = datetime.time(11, 0, 0, 0)
>>> closing_time = datetime.time(14, 0, 0, 0)

然后,比较时间:

>>> opening_time < now.time() < closing_time
False

现在不开门(因为现在是晚上8点38分)。在

当然,一旦您需要比较多个值,它会变得更加复杂,但这只是一个简单的迭代问题;更困难的是您的值跨越多天,因为您的示例数据似乎表明您可能有。但一旦你掌握了基本知识,这些就不难理解了。在

请注意,这一切都是用Python处理的;大多数用例(对工作日的业务不太确定,尽管通过快速搜索至少有几个似乎支持它)应该能够在数据库级别得到满足,但前提是必须指定(我指的是您正在使用的数据库)是什么。。。在

相关问题 更多 >