首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果day是工作日,则获取当前日期,否则获取最近一周的日期(例如,星期五)

如果day是工作日,则获取当前日期,否则获取最近一周的日期(例如,星期五)。

答案: 在云计算领域,我们可以通过编写代码来实现这个需求。以下是一个示例的代码实现,使用Python语言和腾讯云的云函数服务。

代码语言:txt
复制
import datetime

def get_dates(day):
    if is_weekday(day):
        current_date = datetime.datetime.now().strftime("%Y-%m-%d")
        return current_date
    else:
        last_friday = get_last_friday()
        return last_friday.strftime("%Y-%m-%d")

def is_weekday(day):
    # 判断给定的日期是否是工作日
    # 这里可以根据实际需求进行判断,比如周一到周五为工作日,周六和周日为非工作日
    # 也可以根据国家或地区的法定工作日来判断
    if day.weekday() < 5:
        return True
    else:
        return False

def get_last_friday():
    # 获取最近一周的星期五的日期
    today = datetime.datetime.now()
    weekday = today.weekday()
    days_to_friday = (4 - weekday) % 7
    last_friday = today - datetime.timedelta(days=days_to_friday)
    return last_friday

# 测试代码
day = datetime.datetime(2022, 1, 3)  # 假设给定的日期是2022年1月3日,星期一
result = get_dates(day)
print(result)

以上代码中,我们首先定义了一个get_dates函数,该函数接受一个日期参数day,并根据是否是工作日来返回相应的日期。在get_dates函数中,我们调用了is_weekday函数来判断给定的日期是否是工作日。如果是工作日,则获取当前日期;否则,调用get_last_friday函数来获取最近一周的星期五的日期。

is_weekday函数中,我们通过判断给定日期的weekday属性是否小于5来判断是否是工作日。weekday属性返回的是一个整数,表示星期几,其中0表示星期一,1表示星期二,以此类推,6表示星期日。

get_last_friday函数中,我们首先获取当前日期,并通过计算得到距离最近的星期五的天数。然后,通过减去这个天数来获取最近一周的星期五的日期。

这个代码示例使用了Python语言和腾讯云的云函数服务。腾讯云的云函数服务可以让开发者无需搭建和管理服务器,只需编写代码并上传到云端即可运行。您可以将以上代码上传到腾讯云的云函数服务中,并通过触发器来触发函数的执行。具体的操作步骤和使用方法可以参考腾讯云云函数的官方文档:腾讯云云函数

请注意,以上代码示例仅为演示目的,实际应用中可能需要根据具体需求进行适当的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一.使用Scheduled 定时任务器

但是,如果 L 出现在星期字段里,而且在前面有一个数值 X,表示“这个月最后 X 天”,例如,6L 表示该月最后星期五; W:该字符只能出现在日期字段里,对前导日期修饰,表示离该日期最近工作日...例如 15W 表示离该月 15 号最近工作日如果该月 15 号星期六,匹配 14 号星期五如果 15 日星期日,匹配 16 号星期一;如果 15 号星期二,那结果就是 15 号星期二。...W 字符串只能指定单一日期,而不能指定日期范围; LW 组合:在日期字段可以组合使用 LW,它意思当月最后一个工作日; 井号(#):该字符只能在星期字段中使用,表示当月某个工作日。...如 6#3 表示当月第三个星期五(6表示星期五,#3 表示当前第三个),而 4#5 表示当月第五个星期三,假设当月没有第五个星期三,忽略不触发; C:该字符只在日期和星期字段中使用,代表“Calendar...它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期例如 5C 在日期字段中就相当于日历 5 日以后第一天。在星期字段中相当于星期日后第一天。

48810

SpringBoot整合Scheduled(定时任务器)

但是,如果 L 出现在星期字段里,而且在前面有一个数值 X,表示“这个月最后 X 天”, 例如,6L 表示该月最后星期五; W:该字符只能出现在日期字段里,对前导日期修饰,表示离该日期最近工作日...例如 15W 表示离该月 15 号最近工作日如果该月 15 号星期六,匹配 14 号星期五如果 15 日星期日,匹配 16 号星期一;如果 15 号星期二,那结果就是 15 号星期二。...W 字符串只能指定单一日期,而不能指定日期范围; LW 组合:在日期字段可以组合使用 LW,它意思当月最后一个工作日; 井号(#):该字符只能在星期字段中使用,表示当月某个工作日。...如 6#3 表示当月第三个星期五(6表示星期五,#3 表示当前第三个),而 4#5 表示当月第五个星期三,假设当月没有第五个星期三,忽略不触发; C:该字符只在日期和星期字段中使用,代表“Calendar...它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期例如 5C 在日期字段中就相当于日历 5 日以后第一天。1C 在星期字段中相当于星期日后第一天。

88210
  • corn表达式 具体详解与案例

    如果day-of-week域表示‘7’或者‘SAT’, 如果day-of-week域中前面加上数字, 它表示一个月最后几天,例如‘6L’就表示一个月 最后一个星期五。...“W” 字符“W”只允许日期域出现。 这个字符用于指定日期最近工作日例如如果你在日期域中写 “15W”, 表示:这个月15号最近工作日。 所以,如果15号周六,任务会在14号触发。...如果15好周日,任务会在周一也就是16号触发。 如果日期域填写“1W”即使1号周六, 那么任务也只会在下周一,也就是3号触发, “W”字符指定最近工作日不能够跨月份。...字符“W”只能配合一个单独数值使用, 不能够一个数字段,如:1-15W错误。 “L”和“W”可以在日期域中联合使用,LW表示这个月最后一周工作日。...这个字符用于指定本月某某天。 例如:“6#3”表示本月第三周星期五 (6表示星期五,3表示第三周)。 “2#1”表示本月第一周星期一。“4#5”表示第五周星期三。

    1.8K20

    浅析cron表达式

    但是,如果L出现在星期字段里,而且在前面有一个数值 X,表示“这个月最后X天”,例如,6L表示该月最后星期五; ●W:该字符只能出现在日期字段里,对前导日期修饰,表示离该日期最近工作日。...例如15W表示离该月15号最近工作日如果该月15号星期六,匹配14号星期五如果15日星期日,匹配16号星期一;如果15号星期二,那结果就是15号星期二。...W字符串只能指定单一日期,而不能指定日期范围; ●LW组合:在日期字段可以组合使用LW,它意思当月最后一个工作日; ●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。...如6#3表示当月第三个星期五(6表示星期五,#3表示当前第三个),而4#5表示当月第五个星期三,假设当月没有第五个星期三,忽略不触发; ● C:该字符只在日期和星期字段中使用,代表“Calendar...它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期例如5C在日期字段中就相当于日历5日以后第一天。1C在星期字段中相当于星期日后第一天。

    88010

    quartz任务调度器规则说明

    但是,如果L出现在星期字段里,而且在前面有一个数值 X,表示“这个月最后X天”,例如,6L表示该月最后星期五; ●W:该字符只能出现在日期字段里,对前导日期修饰,表示离该日期最近工作日。...例如15W表示离该月15号最近工作日如果该月15号星期六,匹配14号星期五如果15日星期日,匹配16号星期一;如果15号星期二,那结果就是15号星期二。...W字符串只能指定单一日期,而不能指定日期范围; ●LW组合:在日期字段可以组合使用LW,它意思当月最后一个工作日; ●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。...如6#3表示当月第三个星期五(6表示星期五,#3表示当前第三个),而4#5表示当月第五个星期三,假设当月没有第五个星期三,忽略不触发; ● C:该字符只在日期和星期字段中使用,代表“Calendar...它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期例如5C在日期字段中就相当于日历5日以后第一天。1C在星期字段中相当于星期日后第一天。

    48030

    SpringBoot整合Scheduled(定时任务器)

    但是,如果 L 出现在星期字段里,而且在前面有一个数值 X,表示“这个月最后 X 天”, 例如,6L 表示该月最后星期五; ●W:该字符只能出现在日期字段里,对前导日期修饰,表示离该日期最近工作日...例如 15W 表示离该月 15 号最近工作日如果该月 15 号星期六,匹配 14 号星期五如果 15 日星期日,匹配 16 号星期一;如果 15 号星期二,那结果就是 15 号星期二。...W 字符串只能指定单一日期,而不能指定日期范围; ●LW 组合:在日期字段可以组合使用 LW,它意思当月最后一个工作日; ●井号(#):该字符只能在星期字段中使用,表示当月某个工作日。...如 6#3 表示当月第三个星期五(6表示星期五,#3 表示当前第三个),而 4#5 表示当月第五个星期三,假设当月没有第五个星期三,忽略不触发; ● C:该字符只在日期和星期字段中使用,代表“Calendar...它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期例如 5C 在日期字段中就相当于日历 5 日以后第一天。1C 在星期字段中相当于星期日后第一天。

    89420

    java定时执行任务CRON表达式

    它用来指定 离指定日最近一个工作日例如:日域中 15W 意味着 "离该月15号最近一个工作日。"...假如15号星期六,那么 trigger 会在14号(星期五)触发,因为星期四比星期一离15号更近。如果15号周日,任务会在周一也就是16号触发。...如果 日期域填写 “ 1W ” 即使1号周六,那么任务也只会在下周一,也就是3号触发,“W”字符指定最近工作日不能够跨月份。...字符“W”只能配合一个 单独数值使用,不能够一个数字段,如:1-15W错误。 " L " 和" W "可以在日期域中联合使用,LW表示这个月最后一周工作日。...“4#5”表示第五周星期三。 " C ":代表“Calendar”意思。它意思计划所关联日期如果日期没有被关联,相当于日历中所有日期

    5.6K12

    Linux设置定时任务:cron用法

    当在星期字段中使用时,它允许指定诸如给定月份“最后一个星期五”(“5L”)之类构造。 在day-of-month字段中,它表示该月最后一天。 W:'W' 字符允许用于日期字段。...此字符用于指定离给定日期最近工作日(周一至周五)。 例如如果将“15W”指定为day-of-month字段值,其含义为:“距该月15日最近工作日”。...因此,如果15号星期六,触发器会在14号星期五触发。 如果15日星期日,触发器会在16日星期一触发。 如果15号星期二,那么它会在15号星期二触发。...但是,如果将“1W”指定为月份中某天值,并且第1天星期六,触发器会在第3天星期一触发,因为它不会“跳过”一个月天数边界。...例如,在星期字段中输入5#3对应于每个月第三个星期五 ?:用于代替“*``**”以将月中某天或一周某天留空 /:用于表示跳过某些给定数。

    93610

    Quartz定时任务时间格式配置说明

    如果在"L"前加上数字,表示该数据最后一个。 例如在周字段上设置"6L"这样格式,表示“本月最后一个星期五" W :表示离指定日期最近那个工作日(周一至周五)....例如在日字段上设置"15W",表示离每月15号最近那个工作日触发。...如果15号正好周六,最近周五(14号)触发, 如果15号周未,最近下周一(16号)触发.如果15号正好在工作日(周一至周五),就在该天触发。...如果指定格式为 "1W",它表示每月1号往后最近工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体数字,不允许区间"-"). 'L'和 'W'可以一组合使用。...如果在日字段上设置"LW",表示在本月最后一个工作日触发 # :序号(表示每月第几周星期几),例如在周字段上设置"6#3"表示在每月第三个周星期六.注意如果指定"6#5",正好第五周没有星期六

    68540

    Quartz CronTrigger最完整配置说明

    如果在"L"前加上数字,表示该数据最后一个。例如在周字段上设置"6L"这样格式,表示“本月最后一个星期五" W 表示离指定日期最近那个工作日(周一至周五)....例如在日字段上设置"15W",表示离每月15号最近那个工作日触发。...如果15号正好周六,最近周五(14号)触发, 如果15号周未,最近下周一(16号)触发.如果15号正好在工作日(周一至周五),就在该天触发。...如果指定格式为 "1W",它表示每月1号往后最近工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体数字,不允许区间"-")....如果在日字段上设置"LW",表示在本月最后一个工作日触发(一般指发工资 ) ?

    65831

    Hybris CronJob

    在日字段设置上,表示当月最后一天(依据当前月份,如果二月还会依据是否润年[leap]), 在周字段上 "7"或"SAT"表示星期六, 如果在"L"前加上数字,表示该数据最后一个。...例如在周字段上设置"6L"这样格式,表示“本月最后一个星期五" W 表示离指定日期最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近那个工作日触发。...如果15号正好周六,最近周五(14号)触发, 如果15号周未,最近下周一(16号)触发.如果15号正好在工作日(周一至周五),就在该天触发。...如果指定格式为 "1W",它表示每月1号往后最近工作日触发。如果1号正是周六,则将在3号下周一触发。...如果在日字段上设置"LW",表示在本月最后一个工作日触发;周字段设置,若使用英文字母不区分大小写,即MON与mon相同; 常用示例: 0 0 10,14,16 * * ?

    1.4K90

    cron表达式

    当字段日期或星期其中之一被指定了值以后,为了避免冲突,需要将另一个字段值设为?。 L 单词Last首字母,表示最后一天,仅字段日期和星期支持该字符。...重要:指定L字符时,避免指定列表或范围,否则会导致逻辑问题。 在日期中,L表示某个月最后一天。在星期中,L表示一个星期最后一天,也就是星期六。...如果在L前有具体内容,例如,在字段星期中6L表示这个月最后一个星期五。 W 除周末以外有效工作日,在离指定日期最近有效工作日触发事件。...W字符寻找最近有效工作日时不会跨过当前月份,连用字符LW时表示为指定月份最后一个工作日。 在日期中5W,如果5日星期六,则将在最近工作日星期五,即4日触发。...如果5日星期天,则将在最近工作日星期一,即6日触发;如果5日在星期一到星期五一天,就在5日触发。 # 确定每个月第几个星期几。 在字段星期中,4#2表示某月第二个星期四。

    14210

    QuartZ Cron表达式

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历概念,而非SimpleTrigger完全指定时间间隔,复发发射工作时间表。...CronTrigger,你可以指定触发时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。...:表示每月某一天,或第周某一天 “L”:用于每月,或每周,表示为每月最后一天,或每个月最后星期几如“6L”表示“每月最后一个星期五” “W”:表示为最近工作日,如“15W”放在每月(day-of-month...)字段上表示为“到本月15日最近工作日” “#”:用来指定每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 表示“每月第三个星期五” Cron...n/m表示从n开始,每次增加m “L”字符:用在日表示一个月中最后一天,用在周表示该月最后一个星期X “W”字符:指定离给定日期最近工作日(周一到周五) “#”字符:表示该月第几个周X。

    67340

    Conjob For hybris

    如果在"L"前加上数字,表示该数据最后一个。例如在周字段上设置"6L"这样格式,表示“本月最后一个星期五" W 表示离指定日期最近那个工作日(周一至周五)....例如在日字段上设置"15W",表示离每月15号最近那个工作日触发。...如果15号正好周六,最近周五(14号)触发, 如果15号周未,最近下周一(16号)触发.如果15号正好在工作日(周一至周五),就在该天触发。...如果指定格式为 "1W",它表示每月1号往后最近工作日触发。如果1号正是周六,则将在3号下周一触发。...如果在日字段上设置"LW",表示在本月最后一个工作日触发;周字段设置,若使用英文字母不区分大小写,即MON与mon相同;常用示例:0 12 * * ?

    54152

    Spring task定时任务

    如果在"L"前加上数字,表示该数据最后一个。例如在周字段上设置"6L"这样格式,表示“本 月最后一个星期五"         W 表示离指定日期最近那个工作日(周一至周五)....例如在日字段上设置"15W",表示离每月15号最近那个工作日触发。...如果15号正好周六,最近周五(14号)触发, 如果15号周未,最近下周一(16号)触发.如果15号正好在工作日(周一至周五),就在该天触发。...如果指定格式为 "1W",它表示每月1号往后最近工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体数字,不允许区间"-").         ...如果在日字段上设置"LW",表示在本月最后一个工作日触发(一般指发工资 )         # 序号(表示每月第几个周几),例如在周字段上设置"6#3"表示在每月第三个周六.注意如果指定"#5

    13010

    Oracle函数 – 日期函数详解

    例如next_day(sysdate,6)当前开始下一个星期五。很多查询条件和统计都需要求得一周时间段,也就是星期一到星期日时间段。给出日期d和星期string之后计算下一个星期日期....String星期几;当前会话语言指定了一周某一天.返回值时间分量与d时间分量相同....④ 如果 fmt 为“DAY舍入到最近周日,即上半周舍去,下半周作为下一周周日。...,查找该日为星期几,并得到星期一和星期日具体日期 方式一:使用TO_CHAR(SYSDATE,'D')可以求得当前日期一周第几天,得到结果星期日开始作为第1天,那么星期一就是第2天,星期日就是第...函数可以指定当前日期下一个星期几日期,比如:今天2018-5-14日,星期五,那么Next_Day(sysdate,'星期一'),得到日期就是5-21,那么这个星期一日期就是5-21减去7天,

    7.1K11

    Quartz之CronTrigger

    简介 CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历概念,而非SimpleTrigger完全指定时间间隔,复发发射工作时间表。...CronTrigger,你可以指定触发时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。...字段 允许值 允许特殊字符 Seconds(秒) 0-59 , - * / Minutes(分) 0-59 , - * / Hours(小时) 0-23 , - * / Day-of-Month(日期...X “W”字符:指定离给定日期最近工作日(周一到周五) 例如: “15W”放在每月(day-of-month)字段上表示为“到本月15日最近工作日” “#”字符:表示该月第几个周X。...6#3表示该月第3个周五 例如: 在每周(day-of-week)这个字段中内容为”6#3” or “FRI#3” 表示“每月第三个星期五” 常用Cron表达式 每隔5秒执行一次:/5 *

    1.8K10

    Cron表达式

    在"L"前加上数字,表示该数据最后一个。例如在周字段上设置为"5L",表示“当前最后一个星期四" W 最近工作日 离指定日期最近工作日。如设置为10W,表示离10日最近工作日。...如果10日为工作日触发,如果10日喂周六,则在周五触发,如果10日为周六,则在下周一触发。 # 序号 表示每月第几个周几,在周字段上使用。如设置为3#2,表示在每月第2个周三。...使用注意 1、 若设置时,使用英文,则不区分大小写; 2、 L和W可以组合使用,此时也只能在日字段上使用。“LW”表示本月最后一个工作日。...每月最后一天10点15分触发 0 15 10 ? * 6L 每月最后一周星期五10点15分触发 0 15 10 ?...* 6L 2014-2025 从2014年到2025年每月最后一周星期五10点15分触发 0 15 10 ? * 6#3 每月第三周星期五开始触发 0 0 12 1/5 * ?

    4.2K30

    ThinkPHP中获取指定日期工作日具体日期方法

    思路: 1、获取到查询年份内所有工作日数据数组 2、获取到查询开始日期工作日索引 3、计算需查询日期索引 4、获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday...= array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); //获取数字对应星期 //return $weekArr[$number_wk];...} /** * 获取指定日期段内每一天日期 * @param string $startdate 开始日期 * @param string $enddate 结束日期 * @return array...(从数据库获取,数据库无数据先更新数据) * @param string $year 当年年份 * @return array */ private function getWorkDays($year...//获取查询日期最近工作日 $m = M('tb_workday'); $map['date_year'] = $year; $map['date_type'] = 0; $map['DATE_FORMAT

    1.9K20

    java 定时任务 quartz 时间表达式Cron总结

    这些子表达式由空格分开,分别代表: Seconds Minutes Hours Day-of-Month Month Day-of-Week Year (可选字段) 例如 "0 0 12 ?...:表示每月某一天,或每周某一天 "L":用于每月或每周,表示为每月最后一天,或每个月最后一个星期几如 "6L" 表示 “每月最后一个星期五” "W":表示为最近工作日,如 "15W" 放在每月...(day-of-month)字段上表示为 “到本月 15 日最近工作日” "#":用来指定每月第 n 个工作日例如在每周(day-of-week)这个字段中内容为 "6#3" or "FRI#3"... 表示 “每月第三个星期五” Cron 表达式格式: 秒 分 时 日 月 周 年 (可选) 只有日和周可以为 "?"...n/m 表示从 n 开始,每次增加 m “L” 字符:用在日表示一个月中最后一天,用在周表示该月最后一个星期 X “W” 字符:指定离给定日期最近工作日 (周一到周五) “#” 字符:表示该月第几个周

    1.5K20
    领券