2015-11-12 42 views
-1

你好,我要檢查,如果時間A,我在我的數據集是白天或黑夜如何設置參考時間python?

import datetime 
A 
    datetime.datetime(2011, 4, 12, 12, 39, 58) 
if A < datetime.time(19): 
    print 'day' 
else: 
    print 'night' 

,但我得到了下面的錯誤,我不明白爲什麼

TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int' 
+0

當你發佈代碼和錯誤消息,請確認您發佈的代碼是生成錯誤消息的實際代碼。那個'TypeError'表明你沒有像你發佈的代碼那樣實際導入'datetime'。 – user2357112

+0

您需要*兩次*(開始時;結束時)。請參閱[Python - 如果時間現在在兩次之間,則計算出](http://stackoverflow.com/q/20518122/4279) – jfs

回答

2
def get_cycle(dt): 
    return "day" if 6 <= dt.hour < 19 else "night" 

這將定義一天早上6點到7點之間的任何作爲白天

,如果你想要更多的靈活性

def get_cycle(dt): 
    day_start = datetime.time(6,35) # day starts at 6:35am 
    day_end = datetime.time(17,45) #day ends at 5:45pm 
    return "day" if day_start <= dt.time() < day_end else "night" 
+1

使用半關閉時間間隔:'start <= dt.hour jfs

1
if A.hour < 19: 
    print 'day' 
else: 
    print 'night' 

但是,這將最終在24個可能的小時中計數19天,這似乎不正確。