好友
阅读权限10
听众
最后登录1970-1-1
|
之前的一个excel要自动生成一周的日期(比如今天是4.30,应输出2022.4.25-2022.5.1)
本以为这种小需求网上一定有相关的轮子,不用自己重新造……万万没想想到没找到……(CSDN上的有发,但是无解析)
结果自己造轮子的时候发现要考虑一大堆东西……如果是跨年怎么办,跨月怎么办……然后就自己鼓捣了一个出来……
等我抽个空,直接拒绝引用,重写一个逻辑完整的出来(咕咕咕)
[Python] 纯文本查看 复制代码 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)[1]
# 取本月共多少天
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[result]) + "日"
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[result]) + "日" # 生成实际需要的日期(星期一对应的日期)
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())
|
免费评分
-
参与人数 1 | 吾爱币 +5 |
热心值 +1 |
收起
理由
|
苏紫方璇
| + 5 |
+ 1 |
欢迎分析讨论交流,吾爱破解论坛有你更精彩! |
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|