좋습니다. 따라서 누군가가 18 세 이상이면 투표 할 수있는 프로그램을 만들어야합니다.timedelta를 정수로 변경하십시오.
그러나 입력 한 생년월일이 18 년이 넘었는지 여부를 프로그램에서 계산하는 방법에 어려움을 겪고 있습니다. 나는 오늘 날짜에서 그들의 생년월일을 없애는 것을 포함하여 여러 가지를 시도했습니다.
나는 현재 datetime.timedelta 형식의 생년월일과 if 문에서 18로 비교 될 수있는 정수 사이의 차이를 쉽게 변경할 수 있다고 생각합니다.
나는 너무 복잡한 것을 원하지 않습니다.
from datetime import datetime
while True:
inp = input("Enter date in format yyyy/mm/dd")
try:
then = datetime.strptime(inp, "%Y/%m/%d")
break
except ValueError:
print("Invalid input")
diff = then - datetime.now()
diff = -diff
years = diff/365.25
years = int(years)
if years >= 18:
print("You can vote")
else:
print("You can't vote")
현재의 문제는 그것을 바꾸려는 노력의 절름발이 방법이었다 years = int(years)
입니다 :
여기에 내 현재 코드입니다.
어떻게 해결할 수 있습니까?
(다음, datetime.now())을 ['dateutil'] (http://labix.org/python-dateutil#head-ba5ffd4df8111d1b83fc194b97ebecf837add454) 라이브러리,'relativedelta를 살펴 보자 .years'이해야 너가 뭘하고 있는지 말해. – asongtoruin
@asongtoruin하지만 사용자가 이미 입력 한 날짜가 아님을 입력하길 원합니다 –
그 시점부터 'datetime'형식의 변수에 대한 입력을 읽었습니다. 질문은 기능적으로 동일합니다. – asongtoruin