2012-10-19 24 views
3

想知道是否有Python中的函數,可以在一段時間的元組的部分信息和完整的信息返回時間的元組。例如,在我打字時,日期是2012年10月18日星期四。這意味着一年中的日期是292,工作日號碼是3.我希望能夠做到這樣的事情:如何完成一個Python時間元組信息?

>>> part_tuple=2012,10,18,0,0,0,0,0,0 
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple) 
>>> complete_time_tuple 
>>> (2012, 10, 18, 0, 0, 0, 292, 3, 0) 

另外,我想這樣做:

>>> part_tuple=2012,0,0,0,0,0,292,0,0 
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple) 

,並得到complete_tuple回來。代碼當然可以寫要做到這一點,但我猜測它已經埋下了Python模塊中 - 時間,日期時間,日曆,或東西 - 地方。謝謝。

回答

1

關於第一個問題,你可以使用datetime(要求至少Y,M,d):

from datetime import datetime 

dt = datetime(2012, 10, 18) 
print dt.timetuple() 
# time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1) 

而第二個應該很容易搭配:

from datetime import timedelta 
print datetime(2012, 1, 1) + timedelta(days=291) 
# datetime.datetime(2012, 10, 18, 0, 0) 
+0

謝謝!並感謝timedelta sol'n。我想這很明顯,我是新手。 –

1

datetime.timetuple似乎是正是你問什麼:

>>> import datetime 
>>> d = datetime.date(2012, 10, 18) 
>>> d.timetuple() 
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1) 
>>> tuple(d.timetuple()) 
(2012, 10, 18, 0, 0, 0, 3, 292, -1) 
+0

謝謝了!猜猜你可以告訴我是python的新手。 –

相關問題