所以,我正在做一個小項目,但我被難住了。我正在使用現(xiàn)有的 sql 數(shù)據(jù)庫來查找值。把我難住的表格是用來設(shè)置每天不同時間段的表格,它使用二進制作為邏輯,48位數(shù)字代表半小時。SQL 表有列 Day1(Sun) - Day7(Sat),每個列有 48 位“二進制”字符串例如,第 1 天 = 星期日,它有一個 48 位的字符串“111111111111111111111111000000000000000000000000”,它表示這個特定的一天從 00:00 到 11:59(1) 將是無效的:12305 到 9 (0).我想做的是根據(jù)與此表相比的事件時間檢查事件是否有效。因此,如果某個事件發(fā)生在周日 11:00,它會在第 1 天(周日)檢查表并發(fā)現(xiàn)表示該時間的數(shù)字是 1,那么我們是有效的?;蛘?,如果另一個事件發(fā)生在 1:15,它將是無效的,因為那將是零。我無法將我的大腦圍繞如何將這個二進制邏輯轉(zhuǎn)換為在 python 中可用的東西,我正在考慮某種類型的轉(zhuǎn)換表,但仍然是 python 的新手,所以不確定是否有我可以使用的現(xiàn)有庫或一些簡單的方法這樣做我看不到。希望能指出正確的方向?;旧先绾谓忉屪钭筮叺臄?shù)字代表00:00到00:29等的python。
1 回答

HUX布斯
TA貢獻1876條經(jīng)驗 獲得超6個贊
這是指示如何計算映射的代碼。
將 12 小時制轉(zhuǎn)換為 24 小時制。
計算給定時間在哪個 30 分鐘的時間段內(nèi)。
使用該數(shù)字從字符串中選擇適當(dāng)?shù)淖址?/p>
——
from math import floor
validity = "111111111111111111111111000000000000000000000000"
hours = 1
minutes = 15
am_or_pm = 'PM'
if am_or_pm == 'PM':
hours += 12
total_minutes = 60*hours+minutes
print ('total_minutes', total_minutes)
period = total_minutes // 30
print ('period', period)
print ('validity', validity[period])
添加回答
舉報
0/150
提交
取消