每个日期可以转成8位数字,比如 2018年5月12日 对应的就是 20180512。小明发现,自己的生日转成8位数字后,8个数字都没有重复,而且自他出生之后到今天,再也没有这样的日子了。请问小明的生日是哪天?
输入格式:
该题目没有输入
输出格式:
小明的生日是****年**月**日,月日要求用2位数字表示,例如1月表示为01月,例如输出:小明的生日是2018年05月12日,注意:此样例输出数据是错误数据
上一次做面向结果的编程还是在大一上的第一周课吧 哈哈哈哈哈(ಡωಡ)hiahiahia
你甚至可以这样写
print('小明的生日是1987年06月25日')
但是我是一个很正经的人(算是吧......)
import datetime
def find_unique_birthday(current_date):
"""
寻找满足条件的出生日期
参数:
current_date -- 今天的日期,格式为datetime类型
返回:
满足条件的出生日期,格式为datetime类型
"""
while True:
current_date -= datetime.timedelta(days=1) # 将当前日期减去1天
str_day = current_date.strftime('%Y%m%d') # 将当前日期转换为8位数字字符串
if len(set(str(str_day))) == 8: # 判断8位数字字符串中是否有重复数字
return current_date # 返回满足条件的出生日期
if __name__ == '__main__':
today = datetime.datetime.now() # 获取当前日期和时间
result = find_unique_birthday(today) # 调用find_unique_birthday函数,寻找满足条件的出生日期
print(f'小明的生日是{result.year}年{result.month:02d}月{result.day:02d}日') # 输出满足条件的出生日期