Python:Datetime。将用户输入转换为MM/YY

2024-09-28 22:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我想知道是否有人知道如何使用用户输入(MM/YY)并根据今天的日期进行检查,然后如果月份和年份与今天的值匹配,则输出无效,反之亦然。我知道如何检查日期,但我不知道如何只检查月份和年份。e、 g.03/21

代码:

    loyaltyexpiry = input("Enter your loyalty card expiry date (MM/YY): ")
    now = datetime.datetime.now()
    date_today=datetime.date(now.year, now.month, now.day)


   
    if loyaltyexpiry > str(date_today):
      digitcheck = int(loyaltynum[7])
    
      reverse = loyaltynum[6] + loyaltynum[5] + loyaltynum[4] + loyaltynum[3] + loyaltynum[2] + loyaltynum[1] + loyaltynum[0]
      num1 = reverse[0]
      num3 = reverse[2]
      num5 = reverse[4]
      num7 = reverse[6]

      num1 = int(reverse[0]) * 2
      num3 = int(reverse[2]) * 2
      num5 = int(reverse[4]) * 2
      num7 = int(reverse[6]) * 2

      if num1 > 9:
          num1 = num1 - 9
    
      if num3 > 9:
          num3 = num3 - 9
    
      if num5 > 9:
          num5 = num5 - 9
    
      if num7 > 9:
          num7 = num7 - 9
    
      overall = num1 + int(reverse[1]) + num3 + int(reverse[3]) + num5 + int(reverse[5]) + num7
      overall = overall + digitcheck

      if overall % 10 == 0:
           print(Fore.GREEN + "\nLoyalty Card Valid")
      else:
           print(Fore.RED + "\nLoyalty Card Invalid")    
            
    else:
         print(Fore.RED + "\nLoyalty Card Expired")

Tags: datetimedateifnowintreverseprintfore
2条回答

试试这个:

from datetime import datetime as dt
today = dt.now()
print(f"today is: {today.month:02}/{-2000 + today.year:02}")

if "03/21" == f"{today.month:02}/{-2000 + today.year:02}":
    print("match")

使用^{}分析和比较:

from datetime import datetime, date

now = datetime.now()
now = date(year=now.year, month=now.month, day=1)

loyalty_expiry = input("Enter your loyalty card expiry date (MM/YY): ")
expiry = datetime.strptime(loyalty_expiry, "%m/%y")
expiry = date(year=expiry.year, month=expiry.month, day=1)

print(now, expiry, sep="\n")

if now == expiry:
    print("year and month match")
elif now > expiry:
    print("expired")
elif now < expiry:
    print("not expired")

哪些产出:

Enter your loyalty card expiry date (MM/YY): 12/99
2021-03-01
1999-12-01
expired

Enter your loyalty card expiry date (MM/YY): 03/21
2021-03-01
2021-03-01
year and month match

Enter your loyalty card expiry date (MM/YY): 12/26
2021-03-01
2026-12-01
not expired

相关问题 更多 >