2017-10-02 4 views
1

次のコードの目的は、対応する日付に日付を変換することでした。私は2017年10月2日を参考にして進みました。私はdeltatimeを完全に理解しておらず、私がそれをどのように使っているかという問題を推測しています。誰かが私を助けてくれることを願います。Pythonのdeltatimeに関連するコードの問題

import datetime 
ans = 'Y' 
today = datetime.date(2017, 10, 2) 
while ans is 'Y' or ans is 'y': 
    d = input("Enter a date (DD/MM/YYYY)") 
    day = int(d[:2]) 
    month = int(d[3:5]) 
    year = int(d[6:]) 
    thatday = datetime.date(year, month, day) 
    deltat = thatday - today 
    dif = int(deltat.days/7) 
    if dif is 6: 
     print("Sunday") 
    elif dif is 1: 
     print("Tuesday") 
    elif dif is 2: 
     print ("Wednesday") 
    elif dif is 3: 
     print("Thursday") 
    elif dif is 4: 
     print("Friday") 
    elif dif is 5: 
     print("Saturday") 
    else: 
     print("Monday") 
    ans = input("One more time, eh? (y/n)") 
+0

こんにちはもので、整数値を返します!あなたが試してみてよかった! +1、関数strptime()の使用法のように、Pythonの時間に関する基本的な知識が不足しています。あなたが望むなら私は何かを提供することができます。 –

答えて

0

私はあなたを助けようとしましたが、あなたが必要とするものを本当に理解していないときに迷ってしまいました。

基本的には、datetimeオブジェクトを特定の方法で出力するstrftimeについて読む必要があると思います。 datetime.strftime( "%A")は曜日を表します。文字列から日付を読み取るstrptimeも必要です(例: datetime.strptime( "31/12/1999"、 "%d個/%はm /%Y")以下のご変更されたコードで

ルック:

import datetime 
ans = 'Y' 
today = datetime.datetime.now().date() 

while ans.title() == 'Y': 
    d = input("Enter a date (DD/MM/YYYY)") 
    thatday = datetime.datetime.strptime(d,"%d/%m/%Y").date() 
    deltat = thatday - today # timedelta 
    dif = int(deltat.days/7) # timedelta/7? What is this? 
    print(thatday.strftime("%A")) # Here you get the weekday of thatday 
    ans = input("One more time, eh? (y/n)") 
+0

助けてくれてありがとう。私はただ気づいた、私は '%'の代わりに '/'を使用した。 – Aakash

+0

@Aakashこの質問を「閉じる」に回答をマークすることを検討してください。 –

0

あなただけの一日を探しているならあなたはまたこれを行うことができます。平日は()月曜日を0、日曜日はリターンを日付6

from datetime import * 
weekdays = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'] 
d = date(2017, 10, 2).weekday() 
print(weekdays[d]) 

ている月曜日

+0

私はちょうど私がコードを台無しにした不自然なミスをしたことを知った。それは今修正されましたが、別の視点を得るのは痛いことはありませんか?ありがとう – Aakash

+0

ちょうどコメント:日付(2017,10,2).strftime( "%A"))は、上記の例と同じことです。つまり、リストを使う必要はありません。 –

関連する問題