每年每月的第一个星期二
Posted
技术标签:
【中文标题】每年每月的第一个星期二【英文标题】:Get first Tuesday of month every year 【发布时间】:2020-02-25 17:59:42 【问题描述】:我想使用 sql 或 python 来获取当年六月的第一个星期二。
例如:
年份是2020,所以我需要返回06/02/2020 年份是2021,所以我需要返回06/01/2021【问题讨论】:
SQL 是一种语言,我们还需要有关您需要解决方案的数据库的信息。另外,很高兴看到您尝试了什么?你的努力是什么? 【参考方案1】:这是python的方式。
import datetime
def get_day(year):
d = datetime.datetime(year, 6, 1)
offset = 1-d.weekday() #weekday = 1 means tuesday
if offset < 0:
offset+=7
return d+datetime.timedelta(offset)
将年份传递给函数,它将第一个星期二作为datetime
对象返回。
【讨论】:
这非常有效。为了获得当前年份而不用硬编码一个值,我添加了这个:current_year = int(datetime.datetime.now().year)
。然后将current_year
粘贴到函数中。然后转换为字符串,以便可以将其连接成这样的字符串:fixByDate = fixByDate.strftime("%m/%d/%Y")
。我希望这可以帮助别人!
您也可以更改 d = datetime.datetime.now()
并且不接受函数的参数。【参考方案2】:
这里有一个非常简单的 python 函数来获取一年和一个月的第一个星期二的日期。
import datetime as dt
def first_tuesday_of_month(year, month):
d = dt.datetime(year, month, 1)
wd = d.weekday()
# monday
if wd == 0:
return 2
# tuesday
if wd == 1:
return 1
# wensday
if wd == 2:
return 7
# thursday
if wd == 3:
return 6
# friday
if wd == 4:
return 5
# saturday
if wd == 5:
return 4
# sunday 6
if wd == 6:
return 3
if __name__ == "__main__":
print(first_tuesday_of_month(2020, 6))
print(first_tuesday_of_month(2020, 1))
print(first_tuesday_of_month(2020, 2))
print(first_tuesday_of_month(2021, 6))
输出
D:\workspace\***\python>python first_tuesday_of_month.py
2
7
4
1
【讨论】:
以上是关于每年每月的第一个星期二的主要内容,如果未能解决你的问题,请参考以下文章