魔法之类写的一个python指令,运行不会报错,但是会弹出好几条警告
> Object of type datetime is not JSON serializable
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
# 使用此指令前,先安装必要的python库,使用以下命令
# pip install pandas
import pandas as pd
from typing import *
from xbot import print
def calculate_workdays(start_datetime, end_datetime, holidays=None):
"""
title: 计算工作时间
description: 计算两个日期时间之间的工作时间数量,可以自定义节假日。
inputs:
- start_datetime (str): 开始日期时间,格式为YYYY-MM-DD HH:MM:SS,eg: "2024-04-30 10:09:10"
- end_datetime (str): 结束日期时间,格式为YYYY-MM-DD HH:MM:SS,eg: "2024-05-01 15:30:00"
- holidays (List[str]): 自定义的节假日日期列表,格式为YYYY-MM-DD的字符串列表,eg: ["2024-05-01", "2024-05-02"]。默认为None,表示没有自定义节假日。
outputs:
- workdays (int): 工作时间数量,以分钟为单位
"""
# 将开始和结束日期时间转换为pandas的Timestamp对象
start = pd.to_datetime(start_datetime)
end = pd.to_datetime(end_datetime)
# 生成日期时间范围
datetime_range = pd.date_range(start=start, end=end, freq='T')
# 排除周末
workdays = datetime_range[datetime_range.weekday < 5]
if holidays:
# 将自定义节假日转换为日期时间格式
holidays = pd.to_datetime(holidays)
# 排除自定义节假日
workdays = workdays[~workdays.isin(holidays)]
# 计算工作时间数量,以分钟为单位
worktime_minutes = len(workdays)
return worktime_minutes