使用“在Python中显示时间”;Strptime();

使用“在Python中显示时间”;Strptime();,python,time,Python,Time,我试图制作一个基本程序,显示离你下一个生日还有多少天,但是当我在终端中运行它时,它说输入值应该返回一个字符串而不是整数?在python中使用输入函数时,它是否会自动作为字符串值返回 import datetime currentDate = datetime.date.today() userinput = input("Please enter your birthday(MM.DD.YY)") birthday = datetime.datetime.str

我试图制作一个基本程序,显示离你下一个生日还有多少天,但是当我在终端中运行它时,它说输入值应该返回一个字符串而不是整数?在python中使用输入函数时,它是否会自动作为字符串值返回

    import datetime
    currentDate = datetime.date.today()

    userinput = input("Please enter your birthday(MM.DD.YY)")
    birthday = datetime.datetime.strptime(userinput, "%m/%d/%Y")
    print(birthday)
在Python2中,请改用

  • 使用
    %y
    (小写)捕捉两位数年份
  • 您应该向用户建议预期的格式-您预期的格式为“MM/DD/YY”,但您告诉用户键入“MM.DD.YY”
  • 要计算差异,请使用以下内容(对于python3,对于python2,请使用Jahangir提到的原始输入):

    导入日期时间
    今天=datetime.date.today()
    userinput=input(“请输入您的生日(MM/DD):”)
    生日=datetime.datetime.strtime(用户输入,“%m/%d”)
    生日=日期时间。日期(年=今天。年,月=生日。月,日=生日。日)
    
    if(今天生日)。daysIt在Python3.x中运行…感谢@Guntherjena的建议!
    import datetime
    today = datetime.date.today()
    
    userinput = input("Please enter your birthday(MM/DD):")
    birthday = datetime.datetime.strptime(userinput, "%m/%d")
    birthday = datetime.date(year=today.year, month=birthday.month, day=birthday.day)
    
    if (birthday-today).days<0:
        birthday = datetime.date(year=today.year+1, month=birthday.month, day=birthday.day)
    
    print("%d days to your next birthday!"%(birthday-today).days)