2011-08-11 14 views
5

日付を指定すると、その月の平日の位置(例:月の第3火曜日)と、翌月の同じ曜日の日付を取得する方法:月の第3火曜日+ 1)?Python:翌月の平日の位置

+0

を見てください。あなたはそれらの答えからこれを理解することができるはずです。 – eric

答えて

2

以下の例では、ddatetime.dateオブジェクトです。

は、現在の月内の日の「インデックス」を取得

def weekday_index(d): 
    return (d.day + 6) // 7 

この式は、日付が実際に何であるか平日とは独立して動作します使用してください。日ウィッヒは来月内の同じ曜日のインデックスと同じ曜日で取得するには、最も簡単な方法は、

d_next = d + datetime.timedelta(weeks=4) 
if weekday_index(d_next) < weekday_index(d): 
    d_next += datetime.timedelta(weeks=1) 

これは、あなたが探している日が4週間または5週間のどちらかであるという事実を使用してのようですdの後。

2

はすでに相対的な日数について他の二つの質問をしてきましたし、有益な情報をたくさん受けているdateutil

1
import datetime 
cnt=1 
d=datetime.datetime.now() 
d1=datetime.datetime(d.year,d.month,1,d.hour,d.minute,d.second,d.microsecond) 
while(d1.day!=d.day): 
    if 6-d1.weekday()==1:cnt=cnt+1 
    d1=d1+datetime.timedelta(days=1) 
print cnt #print current date week position 
関連する問題