python中 已知这一周是某个月的第几周 怎么返回这一周是这一年的第几周

比如 我有一周是 4月的第2周 那么这一周是这一年的第多少周呢?

import datetime

year = input("年")
month = input("月")
week = input("月里面的第几周")
if not 0 <= int(week) <= 4:
    print("参数错误")
if not 1 <= int(month.strip()) <= 12:
    print("月份错误")
try:
    a, b, c = datetime.date(int(year), int(month), int(week)*7).isocalendar()
except Exception as e:
    print("您输入的时间不正确")
print(f"这一周是这一年的第{b}周")

 

用datetime库

https://docs.python.org/3/library/datetime.html#datetime.datetime

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

 

import datetime
datetime.date(2017, 12, 31).isocalendar()
(2017, 52, 7)  # 给定2017年12月31日,返回该日期对应2017年的第52周的第7天

 

%W 每年的第几周,把星期一做为第一天(值从0到53)
from datetime import datetime

year = input("年")
month = input("月")
week = input("月里面的第几周")
if not 0 <= int(week) <= 4:
    print("参数错误")
if not 1 <= int(month.strip()) <= 12:
    print("月份错误")


for _ in range(1,31):
    try:
        now_time = datetime.strptime(f"{year}-{month}-{_}" + " 00:00:00", "%Y-%m-%d %H:%M:%S")
        # 当月第一天
        one_time = now_time.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
        week_num = int(now_time.strftime('%W')) - int(one_time.strftime('%W')) + 1

        if week_num==int(week):
            print(now_time)
            a = now_time.strftime("%W")
            print(f"这一周是这一年的第{int(a)+1}周")
            break
    except:
        pass