def first_day_quarter_f(our_date):
quarter = our_date.quarter
quarter_start_date= datetime(our_date.year, 3* quarter -2, 1)
return quarter_start_date
def days_in_between_f(our_date):
quarter_start_date=first_day_quarter_f(our_date)
delta=our_date-quarter_start_date
days=delta.days+1
return days
def first_day_name_f(our_date):
quarter_start_date=first_day_quarter_f(our_date)
first_day=quarter_start_date.strftime("%A")
return first_day
def week_f(our_date):
days=days_in_between_f(our_date)
first_day=first_day_name_f(our_date)
if first_day=='Monday':
if days<7:
week=1
else:
if days%7==0:
week=math.floor(days/7)
else:
week=math.floor(days/7)+1
elif first_day=='Tuesday':
if days<6:
week=1
else:
days=days-6
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day=='Wednesday':
if days<5:
week=1
else:
days=days-5
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day=='Thursday':
if days<4:
week=1
else:
days=days-4
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day=='Friday':
if days<3:
week=1
else:
days=days-3
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
elif first_day=='Saturday':
if days<3:
week=1
else:
days=days-2
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
else:
if days<3:
week=1
else:
days=days-1
if days%7==0:
week=1+math.floor(days/7)
else:
week=1+math.floor(days/7)+1
return week我试着得到季度的第一天,然后计算给定的日期和季度的第一天之间的差值,然后根据季度的第一天的名称计算周编号。有没有其他方法可以做到这一点?我们需要20-8-2020是在那个季度的哪一周?答案应该是第8周。
发布于 2021-07-27 22:58:11
from datetime import datetime
import math
date_format = "%m/%d/%Y"
a = datetime.strptime('1/1/2020', date_format) # First day in the year, 1st January 2020
b = datetime.strptime('8/20/2020', date_format) # Your date 20th August 2020
delta = b – a
num_days = delta.days
num_of_week = num_days / 7
week_in_quarter = num_of_week % 13
print(math.ceil(week_in_quarter))输出:
8
https://stackoverflow.com/questions/68540037
复制相似问题