from datetime import datetime
def get_yymm():
while True:
yymm = input('yymm?:')
if yymm == '0':
print('Process interrupted')
break
try:
return datetime.strptime(yymm, '%y%m')
except Exception as ex:
print(ex)
print('Please enter the correct characters')
dt = get_yymm()
print(dt)
OLD
from datetime import datetime
def input_yyyymm():
while True:
yyyymm = input("報告月(作業月)を入力してください(YYYYMM形式)(キャンセル:0+Enter)")
if yyyymm == '0':
print('処理を中断しました')
break
try:
dt = datetime.strptime(yyyymm, '%Y%m')
return dt.strftime('%Y%m') # 例.入力が20221でも202201に変換させるため
except:
print(f'YYYYMM形式(半角数値)で入力してください。')
# 上記だと、20221で、通ってしまう。
def input_yyyymm():
str = input('YYYYMM形式で入力してください?(0:終了): ') + '01'
if str == "001":
print('処理を中断します')
sys.exit()
try:
if len(str) != 8:
raise Exception
# import dateutil.parser import parse? ここはstrptimeだとだめか。
dt = parse(str)
yyyymm_str = dt.strftime('%Y%m')
return yyyymm_str
except:
print('YYYYMMを正確に入力してください')
return input_yyyymm()