每年每月的第一个星期二

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

【讨论】:

以上是关于每年每月的第一个星期二的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标c中获得该月的第n个星期日日期?

Java 8 LocalDate:确定每月的哪个星期一(第 1、第 2、第 3 等)

每天、每周、每月和每年调用一个方法

从日期选择器中的特定日期计算每月的第一周?

从给定日期获取每月的星期数

js如何判断 每年每个月的第一天是星期几?