这可能很简单,但我是python的初学者,我想通过提示用户以MM-DD格式输入日期来比较生日日期。没有年份,因为年份是当前年份(2011年)。然后,它将提示用户输入另一个日期,然后程序将其进行比较,看哪一个是第一个。然后打印出前一天的名字和工作日的名字。在
示例:02-10早于03-11。 02-10在星期四,03-11在星期五
我刚开始学习模块,我知道我应该使用datetime模块,一个日期类和strftime来获取工作日名称。我真的不知道怎么把它们组合起来。在
如果有人能帮我开始,那真的很有帮助!我有一些零碎的东西:
import datetime
def getDate():
while true:
birthday1 = raw_input("Please enter your birthday (MM-DD): ")
try:
userInput = datetime.date.strftime(birthday1, "%m-%d")
except:
print "Please enter a date"
return userInput
birthday2 = raw_input("Please enter another date (MM-DD): ")
if birthday1 > birthday2:
print "birthday1 is older"
elif birthday1 < birthday2:
print "birthday2 is older"
else:
print "same age"
在你发布的代码中我可以看到一些问题。我希望指出其中一些内容会有所帮助,并提供一个稍微重写的版本:
strftime
用于格式化次,而不是解析它们。你想要^{True
有一个大写的T
。在getDate
函数,但从未使用过它。在while
循环,因为您在成功获得输入后不会break
。在下面是您的代码的重写版本,它修复了这些问题—我希望从上面可以清楚地看出我为什么要做这些更改:
嗯,日期时间。日期。时间需要日期时间对象而不是字符串。在
在您的情况下,最好是手动创建日期:
当你有两个日期,日期1和日期2,你可以做:
^{pr2}$有两个主要函数用于在日期对象和字符串之间进行转换:}。在
strftime
和{strftime用于格式化。它返回一个字符串对象。 strptime用于解析。它返回一个日期时间对象。在
更多信息in the docs。在
因为您需要的是一个datetime对象,所以您需要使用strptime。您可以按如下方式使用它:
请注意,不解析年份将默认设置为1900。在
相关问题 更多 >
编程相关推荐