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

当一个月的最后一天恰好是周末时,我们怎么把日期算到这个月的最后一个星期五呢?

要计算一个月的最后一个星期五,我们可以按照以下步骤进行计算:

  1. 首先,确定当前月份的第一天和最后一天。
  2. 判断最后一天是否为周末(星期六或星期天),如果是,则将最后一天向前推移到最后一个工作日(星期五)。
  3. 如果最后一天不是周末,则判断最后一天是星期几。
  4. 将最后一天的星期几转换为数字,星期一为1,星期二为2,以此类推。
  5. 计算最后一个星期五距离最后一天还有多少天。
  6. 将最后一天的日期减去所得天数,得到最后一个星期五的日期。

举例说明:

假设当前月份为9月,第一天为9月1日,最后一天为9月30日。

  1. 最后一天不是周末,9月30日为星期四。
  2. 将星期四的数字表示为4。
  3. 最后一个星期五距离最后一天相差1天。
  4. 将9月30日减去1天,得到最后一个星期五的日期为9月29日。

推荐的腾讯云相关产品:暂无推荐产品。

请注意,由于答案中要求不提及云计算品牌商,所以无法提供具体的腾讯云相关产品和产品介绍链接地址。

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

相关·内容

盘一盘 Python 特别篇 19 - 天数计数|年限

在金融产品估值,细节最多就是如何生成日期和年限了,最核心细节如下: 支付日通常不会落在周末和公共假期上,如落到,那么根据“顺延”或“修正顺延”到后一个工作日,或者“提前”或“修正提前”到前一个工作日...年份用具体四个数字标示这个具体日期是公众假期。 工作日惯例就是通过一些不同规定一个非工作日调整到一个工作日 (非周末且非公众假期) 上。 1....例子:2016年12月1日 (星期四) 一个月后是 2017年1月1日 (星期天而且是公众假期),调整成前一天工作日是 2016年12月30日 (星期五) ,但是已经跨到上个月,因此调整成后一个工作日...月终 (end of month, EOM) 月终惯例是当起始日是某一个月最后工作日 (注意不是日历日),那么调整后结束日也要是某一个月最后工作日 (注意不是日历日)。...例子: 2017年2月28日 (星期二) 一个月后是 2017年3月31日 (星期五) 2017年3月31日 (星期五) 一个月后是 2017年4月30日 (星期天),不是工作日,4月最后一个工作日是

1.5K20

Excel公式技巧104:查找任意月最后一天

学习Excel技术,关注微信公众号: excelperfect 下面是计算任何月份最后一天一个方便技巧。...假设y和m分别是想要查找最后一天日期年和月,那么: =DATE(y,m+1,0) 使用0作为日参数值,返回前一个月最后一天日期。...如果不是年和月,如果知道一个日期并且想找到该日期所在月最后一天日期,可以使用: =EOMONTH(date, 0) 如果想要知道某月最后一个工作日日期,可以使用: =WORKDAY(DATE(y...将假期列表传递给WORKDAY函数最后一个参数,例如: =WORKDAY(DATE(y, m+1, 1), -1, E1:E20) 公式中,E1:E20是包含假期日期列表单元格区域。...DATE(y, m+1, 1), -1, 7) 周末类型为1表示星期五和星期六为周末

1.9K20
  • cron表达式

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

    14710

    Linux设置定时任务:cron用法

    注: 在某些系统里,星期日也可以为7 不很直观用法:如果日期和星期同时被设定,那么其中一个条件被满足,指令便会被执行。...当在星期字段中使用时,它允许指定诸如给定月份最后一个星期五”(“5L”)之类构造。 在day-of-month字段中,它表示该月最后一天。 W:'W' 字符允许用于日期字段。...但是,如果将“1W”指定为月份中某天值,并且第1天是星期六,则触发器会在第3天星期一触发,因为它不会“跳过”一个月天数边界。...仅当月中一天一天,而不是天范围或天列表,才可以指定“W”字符 #:'#' 允许用于星期字段,并且后面必须跟一个1到5之间数字。 它允许指定诸如给定月份“第二个星期五”之类结构。...,需要特别注意一个问题就是环境变量设置,因为我们手动执行某个脚本,是在当前shell环境下进行,程序能找到环境变量;而系统自动执行任务调度,除了默认环境,是不会加载任何其他环境变量

    94210

    Quartzcron表达式

    在天(月)子表达式中,“L”表示一个月最后一天 ; 在天(星期)自表达式中,“L”表示一个星期最后一天,也就是SAT 如果在“L”前有具体内容,它就具有其他含义了 例如:“6L”...表示这个月倒数第6天,“FRIL”表示这个月一个星期五 注意:在使用“L”参数,不要指定列表或范围,因为这会导致问题 。...如果在day-of-week字段里和数字联合使用,它意思就是 “这个月最后一个星期几” – 例如: “6L” means “这个月最后一个星期五”....当我们用“L”,不指明一个列表值或者范围是很重要,不然的话,我们会得到一些意想不到结果。 W("weekday") 只能用在day-of-month字段。...“W”字符仅能在 day-of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月最后一个工作日。 # 只能用在day-of-week字段。用来指定这个月第几个周几。

    2.2K30

    SpringBoot整合Scheduled(定时任务器)

    我们来看下在SpringBoot中我们怎么使用 一、项目使用 1.创建项目添加依赖 创建一个SpringBoot项目,并添加如下依赖 ...L 在日期字段中,表示这个月最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星期六,等同于 7。...但是,如果 L 出现在星期字段里,而且在前面有一个数值 X,则表示“这个月最后 X 天”, 例如,6L 表示该月最后星期五; W:该字符只能出现在日期字段里,是对前导日期修饰,表示离该日期最近工作日...但必须注意关联匹配日期不能够跨月,如你指定 1W,如果 1 号是星期六,结果匹配是 3 号星期一,而非上个月最后那天。...//每个季度一个月一号 1:00:00 执行一次@Scheduled(cron = “0 0 1 1 * ?”)

    88910

    SpringBoot整合Scheduled(定时任务器)

    我们来看下在SpringBoot中我们怎么使用 Scheduled 一、项目使用 1.创建项目添加依赖   创建一个SpringBoot项目,并添加如下依赖 <dependency...L 在日期字段中,表示这个月最后一天,如一月 31 号,非闰年二月 28 号;如果 L 用在星期中,则表示星期六,等同于 7。...但是,如果 L 出现在星期字段里,而且在前面有一个数值 X,则表示“这个月最后 X 天”, 例如,6L 表示该月最后星期五; ●W:该字符只能出现在日期字段里,是对前导日期修饰,表示离该日期最近工作日...但必须注意关联匹配日期不能够跨月,如你指定 1W,如果 1 号是星期六,结果匹配是 3 号星期一,而非上个月最后那天。...//每个季度一个月一号 1:00:00 执行一次 @Scheduled(cron = “0 0 1 1 * ?”)

    89420

    【每周一坑】黑色星期五

    但其实“黑色星期五”在西方还有另外含义:一般,将一个日期恰好是13号星期五称为“黑色星期五”。...有很多西方人忌讳“13”,原因是,按照迷信说法,只要到每月13日这一天,12个巫婆都要举行狂欢夜会,第13个魔鬼撒旦就会在夜会高潮出现,给人们带来灾难。另外,很多西方人也忌讳“星期五”。...正因为有上述传说,西方人就很是忌讳“13”,同时也忌讳“星期五”,要是13日这一天正好赶上“星期五”,则被认为更不吉利,称之为“黑色星期五”。两者结合令人相信当天会发生不幸事情。...星期五和数字13都代表着坏运气,两个不幸个体最后结合成超级不幸一天。所以,不管哪个月13日,如果恰逢星期五就叫“黑色星期五”。...代码问题请在论坛 bbs.crossincode.com 上发帖提问 点击文章最下方“阅读原文”,查看更多学习资源 别忘了将我们文章转发朋友圈或在知乎上为我们专栏点赞,你们支持将会让编程教室做得更好

    74770

    玩转命令行之cron表达式

    另外一点,W最近寻找不会跨过月份 。 LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。 #:用于确定每个月第几个星期几,只能出现在DayofWeek域。...6L 2002-2006 表示2002-2006年个月最后一个星期五上午10:15执行作 (4)0 0 10,14,16 * * ?...每月最后一日上午10:15触发 (20)0 15 10 ? * 6L 每月最后一个星期五上午10:15触发 (21)0 15 10 ?...在天(月)子表达式中,“L”表示一个月最后一天    在天(星期)自表达式中,“L”表示一个星期最后一天,也就是SAT   如果在“L”前有具体内容,它就具有其他含义了   例如:...“6L”表示这个月倒数第6天,“FRIL”表示这个月一个星期五   注意:在使用“L”参数,不要指定列表或范围,因为这会导致问题 0x03 最后 还说啥,赶紧学起来,用起来啦!!!

    57420

    corn表达式 具体详解与案例

    , 即星期六触发,L= 7或者 L = SAT,因此,"5L"意味着一个月 最后一个星期四触发 "#" 用来指定具体周数,"#"前面代表星期, "#"后面代表本月第几周,比如"2#2"表示本月第二周星期...月份中日期和星期中日期这两个元素互斥 一起应该通过设置一个问号来表明不想设置那个字段。 “-” “-”字符被用来指定一个范围。...“L” L是‘last’省略写法可以表示day-of-month和day-of-week域, 但在两个字段中意思不同,例如day-of-month域中表示 一个月最后一天。...如果在day-of-week域表示‘7’或者‘SAT’, 如果在day-of-week域中前面加上数字, 它表示一个月最后几天,例如‘6L’就表示一个月 最后一个星期五。...字符“W”只能配合一个单独数值使用, 不能够是一个数字段,如:1-15W是错误。 “L”和“W”可以在日期域中联合使用,LW表示这个月最后一周工作日。

    1.9K20

    JS 在获取当前月最后一天遇到

    为了更好内容,提示一个 JS 处理日期小技巧,想获取上个月最后一天,只需要设置SetDate参数为0即可。...var endDate = new Date(); //上个月最后一天 endDate.setDate(0); 接着正文开始: 使用 JS 获取当前月最后一天,咱们通常思路先获取下个月一天,然后在减去一天...,所以打印结果如下: 最后一天:2019/8/31 下午4:10:43 那这样算法有没有bug,咱们并不确定,所以为了还原现场,现在咱们从2019.01.31一个一个来试试 var date= new...:00 咱们可以看到,我们 1月31号往后拨一个月在往前减一天,理应得到是 1月31号,实际得到是 2月28号,所以咱们写代码是有bug。...所以不要认为 month + 1 就是月份加 1,它意思是当前日期加上当月天数 。 那要怎么保证多了不会多跳一个月? 只要保证 month + 1 之前不会超过28号就行啦,那要怎么做到

    3.8K30

    你需要Excel常用函数都在这里!

    为三个参数,就和单条件求和一样,后面参数都是成对出现:条件区域2,条件2,条件区域3,条件3... 如果需要,可将条件应用于一个区域并对其他区域中对应值求和。...EOMONTH() EOMONTH(start_date, months) 返回某个月最后一天序列号,该月份与 start_date 相隔(之后或之后)指示月份数。...如: =EOMONTH(2011-1-1,1) 此函数表示在 A2 中日期之后一个月最后一天日期。 结果:2011-2-28。...例:计算某月最后一天 该月最后一天 =EOMONTH(A2,0) 该月有多个天 =DAY(A2) ?...) 指定日期前后月份日期 EOMONTH 某个月最后一天序列号 DATEDIF() 计算日期差 统计函数 MAX() 求最大 MIN() 求最大 SUM() 求和 COUNT() 数值计数 COUNTA

    4K32

    &下一个前端组件“日历”

    ID给谁,谁独立出来,让谁操作? 那么这个业务流程分析思维导图,具体怎么?...这又是二个用JSON, 再往下是加盟店展示,它数量也是可以用JSON来生成算到这里,一共是6个地方可以用JSON。 你看我现在已经6个可能需要JSON和它结构,都在这边写出来了。...就这样,这些节点JSON,都定出来之后,你再用一个父级JSON,它们包起来,这样一个JSON,就出来了。 当然你也可以不把6个JSON拼合,而是它们做为6个API接口。...现在我们先来画一个日历, 首先,最上一排是星期一至星期日,第二排至最后一排是当月日期。...我们已经确定日历有7列,因为一周七天嘛。 然后每个月有多少天是固定,已经写在上面的数组里了。唯一变化就是每个月一天是星期几不一定。

    1.4K51

    第十四届蓝桥杯集训——switch——配套用法示例

    输入示例1: 1853 12 31 输出示例1: 365 输入示例2: 2020 3 1 输出示例2:  61 为了方便测试,我们先写固定数据,我们测试数据1,因为计算正确平年肯定是...分析过程: 1、月份与天数是累计关系,大月31天,小月30天,二月份闰年29天、平年28天。 2、判断如年平年 3、使用switch进行倒序累计,有对应月份向1月份进行累计,最后累加当月日期。...count += day; // 计算到最后一个月份就停止。...count += day; // 计算到最后一个月份就停止。...break; } // 输出结果 System.out.println(count); } } 这种switch用法还是比较有效算是一种结构使用技巧,为后续我们自行探解解题技巧提供了一定思维方向

    42620

    Quartz中时间表达式设置—–corn表达式

    那么是要 trigger 仅在每一个月11号,且正好又是星期三那天被激发?还是在每一个星期三11号被激发?要去除这样不明白性办法就是不能同一候在这两个域上指定值。...换句话说,就是无论指定了哪个月,都是在对应月份最后一天触发 trigger。 表达式 0 0 8 L * ? 意义是在每一个月最后一天上午 8:00 触发 trigger。...在月域上 * 说明是 “每一个月”。 L 字母用于周域上,指示着周最后一天,就是星期六 (或者数字7)。...所以假设你须要在每一个月最后一个星期六下午 11:59 触发 trigger,你能够用这种表达式0 59 23 ? * L。...使用于周域上,你能够用一个数字与 L 连起来表示月份最后一个星期 X。比如,表达式 0 0 12 ? * 2L 说是在每一个月最后一个星期一触发 trigger。

    81220

    傻妞教程-计划任务Crontab定时执行时间如何计算

    星期六 | | | | +---------- 月份 (1 - 12) 或 1 月、2 月、3 月、4 月 ... | | | +--------------- 一个月一天...当在星期几字段中使用时候,可以指定给定月份结构,例如“最后一个星期五”(5L)。在月日字段中,可以指定一个月最后一天。 “day of month”字段可以使用“W”字符。...指定最接近给定日期工作日(星期一-星期五)。例如,15W,意思是:“最接近该月15日工作日。”;所以,如果15号是星期六,触发器在14号星期五触发。如果15日是星期天,触发器在16日星期一触发。...“1W”,如果这个月一天是星期六,不会跨到上个月,触发器会在这个月第三天(也就是星期一)触发。只有指定一天(不能是范围或列表)时候,才能指定“W”字符。...星期几字段可以使用“#”,后面必须跟一个介于1和5之间数字。例如,5#3表示每个月第三个星期五。 在某些实现中,“?”用来代替“”以将月中一天或周中一天留空。其他cron实现是替换“?”

    50370

    cron 表达式详解

    另外一点,W最近寻找不会跨过月份 。   (8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。   (9)#:用于确定每个月第几个星期几,只能出现在DayofWeek域。...6L 2002-2006 表示2002-2006年个月最后一个星期五上午10:15执行作   (4)0 0 10,14,16 * * ?...每月最后一日上午10:15触发   (20)0 15 10 ? * 6L 每月最后一个星期五上午10:15触发   (21)0 15 10 ?...在天(月)子表达式中,“L”表示一个月最后一天   在天(星期)自表达式中,“L”表示一个星期最后一天,也就是SAT   如果在“L”前有具体内容,它就具有其他含义了   例如:“6L”表示这个月倒数第...6天,“FRIL”表示这个月一个星期五   注意:在使用“L”参数,不要指定列表或范围,因为这会导致问题

    7.3K10

    Java8实现获取上个月某个日期和当前月份某个日期

    lastDayOfMonth():返回当月最后一天。firstDayOfNextMonth():返回下个月一天。firstDayOfYear():返回当年一天。...lastDayOfYear():返回当年最后一天。firstDayOfNextYear():返回下一年一天。dayOfWeekInMonth():返回当月第几个星期几,例如第二个星期五。...(10) // 加上 10 天,即本月 11 号 .minusMonths(1); // 减去一个月,即上个月 11 号 LocalDate end = now.with...然后,我们使用 .plusDays(10) 方法将日期加上 10 天,即本月 11 号;再使用 .minusMonths(1) 方法将日期减去一个月,即上个月 11 号,最后将其赋值给 start...最后我们使用 System.out.println() 方法输出开始日期和结束日期

    1K10

    摆脱定时任务cron表达式困扰

    L"字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”缩写,但是它在两个子表达式里含义是不同.       在天(月)子表达式中,"L"表示一个月最后一天.       ...在天(星期)自表达式中,"L"表示一个星期最后一天,也就是SAT.       ...例如:“6L”表示这个月倒数第6天,“FRIL”表示这个月一个星期五.     7."...LW":这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五.     9.用于确定每个月第几个星期几,只能出现在DayofMonth域.       例如在4#2,表示某月第二个星期三...* 6#3" 每月第三个星期五上午10:15触发 到这里,我们介绍完了Spring定时任务cron表达式所有内容。

    54410

    cron表达式详解

    另外一点,W最近寻找不会跨过月份 (8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。 (9)#:用于确定每个月第几个星期几,只能出现在DayofMonth域。...6L 2002-2006 表示2002-2006年个月最后一个星期五上午10:15执行作 一个cron表达式有至少6个(也可能7个)有空格分隔时间元素。...每月最后一日上午10:15触发 "0 15 10 ? * 6L" 每月最后一个星期五上午10:15触发 "0 15 10 ?...* 6L 2002-2005" 2002年至2005年每月最后一个星期五上午10:15触发 "0 15 10 ?...在天(月)子表达式中,L表示一个月最后一天 在天(星期)自表达式中,L表示一个星期最后一天,也就是SAT 如果在L前有具体内容,它就具有其他含义了 例如:6L表示这个月倒数第6天,FRIL表示这个月一个星期五

    1.8K10
    领券