zohoChou 发表于 2022-4-30 11:26

取一周开始结束日期

之前的一个excel要自动生成一周的日期(比如今天是4.30,应输出2022.4.25-2022.5.1)
本以为这种小需求网上一定有相关的轮子,不用自己重新造……万万没想想到没找到……(CSDN上的有发,但是无解析)
结果自己造轮子的时候发现要考虑一大堆东西……如果是跨年怎么办,跨月怎么办……然后就自己鼓捣了一个出来……


等我抽个空,直接拒绝引用,重写一个逻辑完整的出来(咕咕咕)


import calendar
import datetime


today = datetime.datetime.now()
date = today.day# 今天日期(int)下同
month = today.month
year = today.year

weekday = datetime.datetime.isoweekday(today)# 取今天的星期数
if(weekday == 0):
    # 为了符合习惯,特进行重赋值
    weekday = 7

monthRange = calendar.monthrange(today.year, today.month)
# 取本月共多少天


def first():
    result = date - weekday
    if(result < 0):# 计算5号星期六的情况
      if(today.month == 1):# 上月恰好为12月
            list_date = list(range(26, 32))# 生成去年12月的日期列表,根据负数取日期
            first_date = str(today.year - 1) + "年12月" + \
                str(list_date) + "日"
      else:# 上月为1月等
            temp = calendar.monthrange(year, month - 1)
            list_date = list(range(temp - 5, temp + 1))
            first_date = str(today.year) + "年" + str(today.month - 1) +\
                "月" + str(list_date) + "日"# 生成实际需要的日期(星期一对应的日期)
    else:# 正常情况
      first_date = str(today.year) + "年" + str(today.month) +\
            "月" + str(result + 1) + "日- "

    return first_date


def last():
    result = date - weekday + 7
    if(result > monthRange):
      if(today.month == 12):
            last_date = str(today.year + 1) + "年1月" +\
                str(result - monthRange) + "日"
      else:
            last_date = str(today.year) + "年" + str(today.month + 1) +\
                "月" + str(result - monthRange) + "日"
    else:
      last_date = str(today.year) + "年" + str(today.month) +\
            "月" + str(result) + "日"
    return last_date


print(first() + last())

夹克油 发表于 2022-4-30 13:07

大佬就是牛,需要什么样的程序,自己写!

shojnhv 发表于 2022-4-30 14:12

limuyan44 发表于 2022-4-30 12:47
import pendulum as pdl

now = pdl.now()


学习了,以前也是自己写的代码

zohoChou 发表于 2022-5-1 21:28

limuyan44 发表于 2022-4-30 12:47
import pendulum as pdl

now = pdl.now()


!!!
多谢指路,之前真没发现还有其他轮子(笑哭

deepgo 发表于 2022-5-2 00:59

先存下以后备用
页: [1]
查看完整版本: 取一周开始结束日期