0

開始曜日セットに従って週番号を計算するアルゴリズムを設計したいと考えています。例: - 開始日をWEDNESDAY現在の 40 週とそのに設定するTUESDAYと、週番号として 40 が出力されます。水曜日か木曜日なら、41 になるはずです。

サイクルのように考えてください。水曜日から火曜日まで、週番号 + 1 を割り当てる必要があり、次の水曜日になると、週は再び増加する必要があります。

システムのマシン時間を使用しcalendar.setfirstweekday(calendar.WEDNESDAY)てから変更しようとしましたが、毎回週番号として40しか得られません。

Pythonでアルゴリズムなどを設計するにはどうすればよいですか?

私は月に同様の問題を抱えていますが、その解決策を設計しました。はい、これ。

current_date = datetime.datetime.now()
if current_date.day < gv.month_start_date:
    month   = current_date.month -1
    if month == 0:
        month = 12
    else:
        month = current_date.month

週に向けてどのように設計できますか?

4

2 に答える 2

2

私は最終的にこれに対する解決策を設計しました。

if current_day >= set_week_day:
    week = current_week
else:
    week = current_week - 1

すべてのケースで機能します。

于 2013-09-30T10:00:14.060 に答える
0

Pythonのdatetimeには、ISO週番号を取得するためのisocalenderという関数があります(月曜日から始まります)

import datetime
datetime.date(2013, 9, 30).isocalendar()[1]

これを少しのロジックで使用できます (このスクリプトでは、週の開始日を水曜日にする必要があります)。

import datetime

day = 30
month = 9
year = 2013
weekcount = datetime.date(year, month, day).isocalendar()[1]
if datetime.date(year, month, day).isocalendar()[2] <= 3: # start on wednesday
    weekcount -= 1
print weekcount
于 2013-09-30T09:57:20.247 に答える