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

在Python中查找任意给定年份的6月和12月的最后营业日期

,可以使用datetime模块来实现。

首先,导入datetime模块:

代码语言:txt
复制
import datetime

然后,定义一个函数来查找最后营业日期:

代码语言:txt
复制
def find_last_business_day(year, month):
    # 获取指定年份和月份的最后一天
    last_day = datetime.date(year, month + 1, 1) - datetime.timedelta(days=1)
    
    # 判断最后一天是否为周末(周六或周日)
    if last_day.weekday() >= 5:
        # 如果是周末,则向前找到最近的工作日
        delta = datetime.timedelta(days=last_day.weekday() - 4)
        last_business_day = last_day - delta
    else:
        # 如果不是周末,则直接为最后一天
        last_business_day = last_day
    
    return last_business_day

接下来,调用函数来查找给定年份的6月和12月的最后营业日期:

代码语言:txt
复制
year = 2022

# 查找6月的最后营业日期
last_business_day_june = find_last_business_day(year, 6)
print("6月的最后营业日期:", last_business_day_june)

# 查找12月的最后营业日期
last_business_day_december = find_last_business_day(year, 12)
print("12月的最后营业日期:", last_business_day_december)

输出结果类似于:

代码语言:txt
复制
6月的最后营业日期: 2022-06-30
12月的最后营业日期: 2022-12-30

这样就可以通过Python代码找到任意给定年份的6月和12月的最后营业日期了。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mobile
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Real-Time 3D):https://cloud.tencent.com/product/trtc
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

排序数组查找元素第一个最后一个位置

前言: 这是一道给很经典二分查找题目,并且该二分查找算法不同于简单二分,是二分查找进阶版本。 一、题目描述 34....排序数组查找元素第一个最后一个位置 给你一个按照非递减顺序排列整数数组 nums,一个目标值 target。请你找出给定目标值在数组开始位置结束位置。...如果数组不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 算法解决此问题。...第二步就是普通二分算法代码 注意这里有一个细节,跟普通二分查找算法不同,也是后面细节“万恶之源”。...总结:只要左式右式操作数不一样,中点就偏向哪边!!!

10010
  • 排序数组查找元素第一个最后一个位置

    排序数组查找元素第一个最后一个位置 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。...接下来,去寻找左边界,右边界了。 采用二分法来去寻找左右边界,为了让代码清晰,我分别写两个二分来寻找左边界右边界。...刚刚接触二分搜索同学不建议上来就像如果用一个二分来查找左右边界,很容易把自己绕进去,建议扎扎实实写两个二分分别找左边界右边界 寻找右边界 先来寻找右边界,至于二分查找,如果看过704.二分查找就会知道...总结 初学者建议大家一块一块去分拆这道题目,正如本题解描述,想清楚三种情况之后,先专注于寻找右区间,然后专注于寻找左区间,左右根据左右区间做最后判断。...nums 数组中二分查找得到第一个大于等于 target下标leftBorder; # 2、 nums 数组中二分查找得到第一个大于等于 target+1下标, 减1则得到rightBorder;

    4.7K20

    Leetcode No.34 排序数组查找元素第一个最后一个位置

    一、题目描述 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 如果数组不存在目标值 target,返回 [-1, -1]。...,返回下标mid 5、当目标值小于等于nums[mid]时,说明目标值左侧,往左侧递归查找,否则往右侧递归查找 查找最后一个位置同理,唯一不同是第4、5步 4、假如nums[mid]等于target...且nums[mid]比相邻右侧元素小,返回下标mid ​5、当目标值大于等于nums[mid]时,说明目标值右侧,往右侧递归查找,否则往左侧递归查找 三、代码 package search_range...mid]<nums[mid+1]){ return mid; } if(target>=nums[mid]){ //寻找最后一个位置...二分查找时间复杂度为 O(logn),一共会执行两次,因此总时间复杂度为O(logn)。 空间复杂度:O(1) 。只需要常数空间存放若干变量。

    1.9K10

    leetcode-34-排序数组查找元素第一个最后一个位置

    题目描述: 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 你算法时间复杂度必须是 O(log n) 级别。...: vector searchRange(vector& nums, int target)  说明: 1、这道题给定一个vector一个target,vector中装着升序一个数组...,比如[5,7,7,8,8,10], 要求找到target比如8,vector起始位置结束位置。...按照二分法思路,我们可以这样子设计: ①首先根据二分法找到vector某个target元素,这个元素是一串target元素某一个,记这个元素索引是med。...这个元素前一个元素,也就是一串target元素最后一个。

    3.5K40

    leetcode34-排序数组查找元素第一个最后一个位置

    前言 今天刷题目是:排序数组查找元素第一个最后一个位置,这道题目最开始AC以后,然后做了两步优化操作,供大家参考。...题目 leetcode-34:排序数组查找元素第一个最后一个位置 分类(tag):二分查找这一类 英文链接:https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array...找出给定目标值在数组开始位置结束位置。 你算法时间复杂度必须是 O(log n) 级别。 如果数组不存在目标值,返回 [-1, -1]。...,前面已经讲过了二分查找,(二分查找:RNG输了,但我们不能输)这里不再继续讲,讲一下代码23行到24行,leftIndex就是我之前说保存这个已经找下标,24行就是因为是找最最左边下标,所以把...-1,如果不是-1,那说明需要继续找最右边下标,如果是-1的话,那么说明数组没有target值,所以我们也不必去找最右边下标了,因为已经找过了,不存在,还费这事干嘛,最终这样优化完速度快了1ms

    2.6K30

    LeetCode-34-排序数组查找元素第一个最后一个位置

    # LeetCode-34-排序数组查找元素第一个最后一个位置 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。...你算法时间复杂度必须是 O(log n) 级别。 如果数组不存在目标值,返回 [-1, -1]。...,如果找完了都没有找到,返回[-1,-1] 移动尾指针,直到找到最后一个等于target位置,如果找完了都没有找到,返回[-1,-1] 当头尾指针相同时,说明只有一个target,返回当前位置[start...,start]或[end,end] 反之,返回头尾指针区间[start,end] 方法2、二分查找(fast): 通过判断mid位置数值,决定左右边界移动 当nums[mid]<target时,说明...target,这时候只需要查找另外一个边界等于target即可,可以进行循环移动查找最后返回[start,end]即可 如果没有找到,返回[-1,-1] 方法3、递归分治(low): 通过二分查找切分数组寻找左右子数组

    2.2K20

    LeetCode题目34:排序数组查找元素第一个最后一个位置

    原题描述 + 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 你算法时间复杂度必须是 O(log n) 级别。...,提示了我们使用二分查找解法。...普通二分查找找到target后立即返回,所以我们需要做变式,情况分为以下两种。 寻找左边界 还是得举个例子。...因为lower左边不是target,而higher也一直尽可能往左挪动。 寻找右边界 与上面过程相反,我们尽可能向右挪动lower,让其与higher相撞即可。...但如果复用上面的逻辑,每次挪动时令lower=mid+1,那么最终lower一定会与higher相撞于最后一个target后一个位置。此时lower-1才是所求。

    3.1K20

    排序数组查找元素第一个最后一个位置

    前言 今天主要讲解内容是:如何在已排序数组查找元素第一个最后一个位置。以 leetcode 34 题作为例题,提供二分查找解题思路,供大家参考。...题目详述 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 如果数组不存在目标值 target,返回 [-1, -1]。...同查找元素第一个位置类似,查找到数组某元素值等于目标值 target 时,不立即返回,通过增大查找区间下边界 low (令 low = mid + 1),不断向 mid 右侧收缩,最后达到锁定右边界...查找元素第一个最后一个位置代码: // C语言版本 int GetTargetPosition(int* nums, int numsSize, int target, int locFlag)...if (nums == NULL || numsSize < 1) { return res; } /* 通过 locFlag 标志区分查找元素位置一个还是最后一个

    2.6K20

    排序数组查找元素第一个最后一个位置(leetcode34)

    给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 如果数组不存在目标值 target,返回 [-1, -1]。...示例 1: 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 解析: 方法一:二分查找 二分查找,寻找leftIdx 即为在数组寻找第一个大于等于 target...下标,寻找 rightIdx 即为在数组寻找第一个大于target 下标,然后将下标减一。...两者判断条件不同,为了代码复用,我们定义 binarySearch(nums, target, lower) 表示 nums 数组中二分查找 target 位置,如果 lower 为 true,...则查找第一个大于等于 target 下标,否则查找第一个大于target 下标。

    1.8K10

    LeetCode - #34 排序数组查找元素第一个最后一个位置(Top 100)

    微博:@故胤道长[1]**) Swift 算法题题解整理为文字版以方便大家学习与阅读。...LeetCode 算法到目前我们已经更新了 33 期,我们会保持更新时间进度(周一、周三、周五早上 9:00 发布),每期内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。...如果大家有建议和意见欢迎文末留言,我们会尽力满足大家需求。 难度水平:中等 1. 描述 给定一个按照升序排列整数数组 nums,一个目标值 target。...找出给定目标值在数组开始位置结束位置。 如果数组不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 O(log n) 算法解决此问题吗? 2....时间复杂度: O(logn) 空间复杂度: O(1) 该算法题解仓库:LeetCode-Swift[2] 点击前往 LeetCode[3] 练习 特别感谢 Swift社区 编辑部每一位编辑,感谢大家辛苦付出

    1.5K20

    ​LeetCode刷题实战34:排序数组查找元素第一个最后一个位置

    算法重要性,我就不多说了吧,想去大厂,就必须要经过基础知识业务逻辑面试+算法面试。所以,为了提高大家算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊问题叫做在排序数组查找元素第一个最后一个位置,我们先来看题面: https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array...题意 给定一个按照升序排列整数数组 nums,一个目标值 target。找出给定目标值在数组开始位置结束位置。 你算法时间复杂度必须是 O(log n) 级别。...版本2:是指二分法执行完毕,返回target最左边位置,求出另一个边界! 关于详细说明,请看这篇[二分搜索](二分查找有几种写法?它们区别是什么?... bisect库 简要介绍一下, bisect.bisect_left(a,x,lo=0,hi=len(a))a找x最左边数索引,如果找不到就返回插入索引. bisect.bisect(a,

    1.2K20
    领券