如果您正在處理日期,那麼您可以使用方法toordinal。
import datetime
jan1=datetime.datetime(2008,1,1)
dec31=datetime.datetime(2008,12,31)
feb1=datetime.datetime(2008,02,01)
dates=[jan1,dec31,feb1]
dates.sort()
datesord=[d.toordinal() for d in dates]
start,end=datesord[0],datesord[-1]
def datetofloat(date,start,end):
"""date,start,end are ordinal dates
ie Jan 1 of the year 1 has ordinal 1
Jan 1 of the year 2008 has ordinal 733042"""
return (date-start)*1.0/(end-start)
print datetofloat(dates[0],start,end)
0.0
print datetofloat(dates[1],start,end)
0.0849315068493*
print datetofloat(dates[2],start,end)
1.0
* 16.67%大概是一年的兩個月,所以2月1日的比例約爲一半。
「無法實現這個」是什麼意思?您有幾天的時間可以提供基準日期的統一增量。這是最簡單的方法。什麼沒有用?請提供具體的代碼。 – 2009-06-18 00:33:36