Python 3.2 输入日期函数
我想写一个函数,用户输入一个日期,然后用shelve函数把这个日期存起来,等到调用的时候能打印出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'对象没有'split'这个属性。
最终我想要的效果是把01/01/2013加上30天,结果打印出01/30/2013。
提前谢谢你!
5 个回答
2
使用 dateutils 模块
from dateutil import parser
date = parser.parse(input("Enter date: "))
2
谢谢。我一直在想怎么往datetime.datetime(xxx)里添加信息,这个解释得很好。具体如下:
datetime.datetime(year, month, day, hour, minute, second)
这里的参数都是整数。这样就可以用了!
27
input()
方法只能从终端获取文本。所以你需要想办法把这些文本解析成日期。
你可以用两种不同的方法来实现:
让用户分别输入日期的三个部分,也就是说要调用
input()
三次,把结果转换成整数,然后组合成一个日期:year = int(input('Enter a year')) month = int(input('Enter a month')) day = int(input('Enter a day')) date1 = datetime.date(year, month, day)
让用户按照 特定格式 输入日期,然后把这个格式转换成年、月、日这三个数字:
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 的异常处理来解决这个问题。:-)