← 返回题库
初级

日期问题

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(s):
    s = str(s).strip()
    import datetime
    parts = s.split('/')
    if len(parts) == 3:
        a, b, c = parts
        # 可能是 YY/MM/DD 或 MM/DD/YY 或 DD/MM/YY
        a, b, c = int(a), int(b), int(c)
        results = set()
        # YY/MM/DD
        for y in [1900+a, 2000+a]:
            try:
                d = datetime.date(y, b, c)
                if 1960 <= y <= 2059:
                    results.add(d.strftime('%Y-%m-%d'))
            except: pass
        # MM/DD/YY
        for y in [1900+c, 2000+c]:
            try:
                d = datetime.date(y, a, b)
                if 1960 <= y <= 2059:
                    results.add(d.strftime('%Y-%m-%d'))
            except: pass
        # DD/MM/YY
        for y in [1900+c, 2000+c]:
            try:
                d = datetime.date(y, b, a)
                if 1960 <= y <= 2059:
                    results.add(d.strftime('%Y-%m-%d'))
            except: pass
        for r in sorted(results):
            print(r)

示例

输入
solve('01/02/03')
期望输出
2001-02-03
2003-01-02
2003-02-01
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码