请
登录后发表观点
![](https://mdbbs.oss-accelerate.aliyuncs.com/images/2024/03/26/493f4d8a94764b4c0685e16fb2d727f7.gif)
- 根据当前时间得到本月 1 号
- 本月 1 号-1 等于上月最后一天
- 得到当月最后一天所属星期几数值
- 数值比 5 大吉日期就在减少几天最后一个周五,如果小于 5 则数值是几就是周几。
函数 WEEKDAY 、js 脚本 date.getDay()返回日期周几,前后端都可以实施。
大佬,不好意思,代码小弟是个小白,想问下这个直接复制到工作流里的代码块的 Java 就行了是吗?
这像是 python
不可能,公式写不出来,这个要代码块从上个月最后一天顺着往前找,还要考虑法定节假日和调休,给你个参考:
from datetime import datetime, timedelta import chinese_calendar as calendar def get_last_business_day(date_str): # 解析输入的日期 input_date = datetime.strptime(date_str, '%Y-%m-%d') # 获取上个月的最后一天 first_day_this_month = input_date.replace(day=1) last_day_last_month = first_day_this_month - timedelta(days=1) # 从上个月的最后一天开始,向前找第一个工作日 current_day = last_day_last_month while current_day.weekday() >= 5 or calendar.is_holiday(current_day): current_day -= timedelta(days=1) return current_day.strftime('%Y-%m-%d') # 输入参数并调用函数 input_date = input['date'] last_business_day = get_last_business_day(input_date) output = {'date':last_business_day}
大佬,不好意思,代码小弟是个小白,想问下这个直接复制到工作流里的代码块的 Java 就行了是吗?
👍
不可能,公式写不出来,这个要代码块从上个月最后一天顺着往前找,还要考虑法定节假日和调休,给你个参考:
from datetime import datetime, timedelta
import chinese_calendar as calendar
def get_last_business_day(date_str):
# 解析输入的日期
input_date = datetime.strptime(date_str, '%Y-%m-%d')
# 获取上个月的最后一天
first_day_this_month = input_date.replace(day=1)
last_day_last_month = first_day_this_month - timedelta(days=1)
# 从上个月的最后一天开始,向前找第一个工作日
current_day = last_day_last_month
while current_day.weekday() >= 5 or calendar.is_holiday(current_day):
current_day -= timedelta(days=1)
return current_day.strftime('%Y-%m-%d')
# 输入参数并调用函数
input_date = input['date']
last_business_day = get_last_business_day(input_date)
output = {'date':last_business_day}
![](https://mdbbs.oss-accelerate.aliyuncs.com/images/2023/10/09/f1e7cb63c76c92d352fbfef84edd3695.png!avatar)
公式做不到,需要写函数