12

ユーザーが入力した日付を取り、それを shelf 関数で保存し、呼び出されたときに 30 日後に日付を出力する関数を書きたいと思います。

私は次のような単純なものから始めようとしています:

import datetime

def getdate():
    date1 = input(datetime.date)
    return date1

getdate()

print(date1)

これは明らかに機能しません。

上記の質問に対する回答を使用して、プログラムのそのセクションが機能するようになりました。ありがとう!次は次の部分です。

私は、あなたが指示した方法で日付を取得し、30 日を追加する簡単なプログラムを作成しようとしています。

import datetime
from datetime import timedelta

d = datetime.date(2013, 1, 1)
print(d)
year, month, day = map(int, d.split('-'))
d = datetime.date(year, month, day)
d = dplanted.strftime('%m/%d/%Y')
d = datetime.date(d)+timedelta(days=30)
print(d)

これによりエラーが発生します: year, month, day = map(int, d.split('-')) AttributeError: 'datetime.date' object has no attribute 'split'

最終的に私が望むのは、2013 年 1 月 1 日 + 30 日を持ち、2013 年 1 月 30 日を印刷することです。

前もって感謝します!

4

5 に答える 5

26

このinput()メソッドは、端末からのテキストを取得できます。したがって、そのテキストを解析して日付に変換する方法を理解する必要があります。

あなたは2つの異なる方法でそれについて行くことができます:

  • 日付の3つの部分を別々に入力するようにユーザーに依頼します。したがって、input()3回呼び出し、結果を整数に変換して、日付を作成します。

    year = int(input('Enter a year'))
    month = int(input('Enter a month'))
    day = int(input('Enter a day'))
    date1 = datetime.date(year, month, day)
    
  • ユーザーに特定の形式で日付を入力するように依頼し、その形式を年、月、日の3つの数値に変換します。

    date_entry = input('Enter a date in YYYY-MM-DD format')
    year, month, day = map(int, date_entry.split('-'))
    date1 = datetime.date(year, month, day)
    

これらのアプローチは両方とも例です。たとえば、エラー処理は含まれていません。Pythonの例外処理を読んで、自分でそれを理解する必要があります。:-)

于 2013-03-05T14:58:19.947 に答える
-1

ライブラリを次のように確認します

日時のインポート

そして構文に従います

日付 = datetime.datetime(2013, 1, 1)

于 2021-05-21T17:29:18.830 に答える