Python 如何获取给定月份一周中某一天的第n次出现次数?
月份的星期不定义此值。 在大多数情况下,起始周和起始月之间的转换会导致问题Python 如何获取给定月份一周中某一天的第n次出现次数?,python,python-2.7,date,Python,Python 2.7,Date,月份的星期不定义此值。 在大多数情况下,起始周和起始月之间的转换会导致问题 是否有任何python库或算法来计算此值?您可以通过循环月内的几天并计算是否遇到第n个工作日来计算此值: import datetime def get_n_weekday(year, month, day_of_week, n): count = 0 for i in xrange(1, 32): try: d = datetime.date(year, mon
是否有任何python库或算法来计算此值?您可以通过循环月内的几天并计算是否遇到第n个工作日来计算此值:
import datetime
def get_n_weekday(year, month, day_of_week, n):
count = 0
for i in xrange(1, 32):
try:
d = datetime.date(year, month, i)
except ValueError:
break
if d.isoweekday() == day_of_week:
count += 1
if count == n:
return d
return None
例如:get_n_平日(2016,1,1,1)
=2016年1月的第一个星期一,即datetime.date(2016,1,4)
这意味着星期一是1,星期天是7。两个比Simeon的答案更简单的解决方案:
def f1(day_of_month):
ret = None
if ( day_of_month % 7 == 0 ):
ret = day_of_month/7
else:
ret = (day_of_month//7) + 1
return ret
def f2(day_of_month):
actual_day = day_of_month
counter = 0
while actual_day > 0:
actual_day = actual_day - 7
counter = counter + 1
return counter