7-3 特殊生日

每个日期可以转成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}日')  # 输出满足条件的出生日期

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值