2016-10-06 12 views
0

私は、コールスケジュールに設定していて、人々が簡単に、私はそれを達成するためにxmlファイルを変更するためのスクリプトを書いたコールスケジュールに人々年代を切り替えることができるように、コンテキストを与えるためにgmtime, strftime and datetime.Pythonを使用すると、週の始まりを日曜日や月曜日ではなく、水曜日に始めることができますか?

を使用しています。誰でも簡単にコールできるように、スクリプトを設定して、特定の日付の週番号が何であるかを尋ねることができます。ビルドされた機能のほとんどは、日曜日または月曜日を開始日として使用します。これは私が必要とするものではありません。問題の

機能:

私はそれが水曜日に開始することが計算されますように、私は周りの作業を必要とし、日曜日に%U開始を知っています。

`#option 2 
def getWeek(): 
    print("\n\n") 
    date = input("Enter the date you want the week number of (MM DD YYYY): ") 
    if(len(date) != 10): 
     print("You typed it in wrong. Try it again.") 
     getWeek() 
    else: 
     d = time.strptime(date, "%m %d %Y") 
     print(strftime("%U" + 2, d))` 

答えて

1

自分で週#を手動で計算するのはなぜですか。
基本アルゴリズム:

  • の現在の日付を取得する第1の部分の週と仮定7 + 1 =週#バック最寄りの水曜日(またはあなたが好きな日)へのシフト
  • 除算は(あります0)のコードで

>>> wednesday = 3 # sunday = 0, monday = 1, etc. 
>>> week_no = lambda d: (d.tm_yday - (d.tm_wday-wednesday)%7) // 7 + 1 
>>> week_no(time.strptime("10 06 2016", "%m %d %Y")) # Thursday 
41 
>>> week_no(time.strptime("10 04 2016", "%m %d %Y")) # Tuesday 
40 

健全性チェック:

>>> time.strftime("%U", time.strptime("10 06 2016", "%m %d %Y")) 
'40' 
>>> time.strftime("%U", time.strptime("10 04 2016", "%m %d %Y")) 
'40' 
+0

ありがとう、私は助けていただきありがとうございます。私はあなたが水曜日にラブダをすることができるのか知らなかった。かっこいい! – Bridger

関連する問題