2017-11-01 5 views
0

"Month Year"の形式で日付を比較しようとすると、月の違いが正しくない場合があります。私が2016年1月から2017年3月までを比較した場合、月の差は14でなく3となります。年が増えると月に0を入れることができる方法はありますか?別の暦年のdatetimeを使用して日付を比較する

import datetime 

month_names = ["January", "February", "March", "April", 
      "May",  "June",  "July",  "August", 
      "September", "October", "November", "December"] 

months = {name : (index + 1) for index, name in enumerate(month_names)} 

current_month = datetime.date.today().strftime('%B') 
month_joined  = input("Please enter the month you joined: ") 
month_difference = abs(months[current_month] - months[month_joined]) 

current_year = int(datetime.date.today().strftime('%Y')) 
year_joined = int(input('Please enter the year you joined: ')) 

year_due = year_joined + 1 

year_difference = current_year - year_due 

月間の違いは、年によって異なります。私は月差の入力を無視し、毎年12ヶ月間を置くいくつかのソリューションを試しました。正確には月間の違いが必要です。何か案は?私は困惑している。

+0

日付になると、私は騙され、partedatetimeを使用します。その後、cal.parse( "last January at 5pm")のような人間が読めるテキストで日付を作成することができます。 – SteveJ

+0

month_differenceを計算するときにyear_joinedがわからなくても、その差を正しく計算するにはどうしますか? – Iarwa1n

+0

@SteveJそれはライブラリではなく、今月を印刷するための方法を見つけることができません。それも何ですか? – Jack

答えて

1

「月を0にする」とは何か分かりませんが、month_differenceyear_difference * 12を追加すると、2017年3月から2016年1月を説明のとおりにマップできます。

関連する問題