任意の日付がその月の第何週かを求める python
スクレイピングでカレンダーをポチポチしたいとき。
自分はxpathを使います。
その時よくあるxpathのパターンが以下(日曜始まりのカレンダー)
//[@id="cal"]/main/table/tbody/tr[3]/td[1]・・・第3週目の1日目
//[@id="cal"]/main/table/tbody/tr[3]/td[2]・・・第3週目の2日目
//*[@id="cal]/main//table/tbody/tr[3]/td[7]・・・第3週目の7日目
カレンダーがきれいなテーブルになっています。
tr[3]がカレンダーの第3週目を表しています
もし、2021年2月28日をポチっとしたい場合(日曜始まりの場合)
xpathは
//*[@id="cal"]/main/table/tbody/tr[5]/td[1]・・・第5週目の1日目
ここで必要になるのがtr[5]の部分つまり、
任意の日付がその月のカレンダーの第〇週になるということです。
ネットで調べても難しかったので自分で関数を作成しました。
import datetime
def get_week(year,month,day):
"""
日曜始まりのカレンダーの場合任意の日付が第〇週かを求める
Args:
year:年
month:月
day:日
Returns
第〇週
"""
firstday=datetime.date(year,month,1) #任意の日付の同月1日のdate型を作成する
hizuke=datetime.date(year,month,day) #任意の日付のdate型を作成する
firstsyuu=firstday.strftime("%U") #任意の日付同月1日がその年の何週目かを取得する
nowsyuu=hizuke.strftime("%U") #任意の日付がその年の第何週目かを取得する
return int(nowsyuu)-int(firstsyuu)+1 #引き算して求める
strftime("%U")で年初からの週数がわかるのでうまく引き算をして求めます。
※1/1は第0週
※カレンダーが月曜日から始まる場合strftime("%W")
Author And Source
この問題について(任意の日付がその月の第何週かを求める python), 我々は、より多くの情報をここで見つけました https://qiita.com/apple123/items/99b39a8a285d9573667c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .