Python 用Python實現時間離散化

2021-07-02 00:24:20 字數 1105 閱讀 6855

【方案1】時間取到小時, 分鐘和秒全部用0代替,這樣造成的問題是區間劃分不正確,[00:00:00,00:59:59]被劃分到時間點00:00:00上,與需求方的意思相違背(這裡真的要吐槽一下, **開始之前一定要做好需求分析, 大部分的統計結果不合適都是因為需求分析沒有做好而導致的);

【方案2】通過判斷分鐘和秒是否為0,對hour進行操作,如果都為0,hour=n;如果不為0,hour=n+1。這裡的問題在於,在23點時並不能單純的做加1操作; 

【final】使用datetime模組中的timedelta, 不用判斷分鐘和秒是否為0,也不用判斷是不是在23點,**如下:

def time_to_interval(dt, minutesdelta):

""" minutesdelta measured in minutes

dt is time str like '%y-%m-%d %h:%m:%s'

"""try:

date, time = dt.split()

year, month, day = date.split('-')

hour, minute, second = time.split(':')

hour, minute, second = int(hour), int(minute), int(second)

seconds = minute * 60 + second

secondsdelta = minutesdelta * 60

delta = math.ceil(seconds/secondsdelta)*secondsdelta - seconds

return datetime(int(year), int(month), int(day), hour, minute, second)\

+ timedelta(seconds = delta)

except exception, ex:

logger.error("%s" %  traceback.format_exc())

return none

python 模組功能還是非常強大的, 只有你想不到。

pypy 用python實現的python

pypy 分為兩部分 乙個 python 的實現 和 乙個編譯器 pypy provides infrastructure for building interpreters in r python.this infrastructure makes it much easier than star...

用python實現SYN Flooding攻擊

作業裡的 直接這裡copy在這裡記錄一下。在tcp ip協議中,當客戶端試著與伺服器間建立tcp連線時,正常情況下客戶端與伺服器端進行tcp三次握手 1.客戶端通過傳送syn同步 synchronize 資訊到伺服器要求建立連線。2.伺服器通過響應客戶端syn ack以抄收 acknowledge ...

用python實現棧 Python實現棧的方法

usr bin env python 定義乙個列表來模擬棧 stack def pu 出棧,用到了pop 函式 def popit if len stack 0 print cannot pop from an empty stack else print removed stack.pop 編歷棧...